如何解决如何解决内核模块中函数链接问题的多重定义
在我的第一个内核移植项目中,我遇到了这个链接问题,有人熟悉吗?
linux/arch/arm/mach-xxx$ vi hotplug.c +110
110 int platform_cpu_kill(unsigned int cpu)
111 {
112 return 1;
113 }
在编译期间我得到了错误的多重定义?
arch/arm/mach-xxx/built-in.o: In function `platform_cpu_kill': arch/arm/mach-xxx/hotplug.c:111: multiple definition of `platform_cpu_kill' arch/arm/mach-xxx/built-in.o:arch/arm/mach-tyranno/hotplug.c:111: first defined here arch/arm/mach-xxx/built-in.o
platform_cpu_kill() 只有一个定义,header 中没有任何其他定义或声明,仍然抛出多个platform_cpu_kill 定义
arch/arm/mach-xxx$ grep -inr "platform_cpu_kill"
hotplug.c:110:int platform_cpu_kill(unsigned int cpu)
Binary file hotplug.o matches
Binary file built-in.o matches
arch/arm/mach-xxx$ cat Makefile
obj-y += common.o io.o
obj-$(CONFIG_SMP) += platsmp.o headsmp.o
obj-$(CONFIG_PM) += pm.o hotplug.o
obj-$(CONFIG_SUSPEND) += sleep.o
obj-$(CONFIG_HIBERNATION) += hibernate.o hibernate_asm.o
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。