编译警告 - ARM交叉编译器
问题描述:
我一直在尝试交叉编译可加载的内核模块,并且我一直在收到警告消息,希望能够获得帮助。编译警告 - ARM交叉编译器
下面是警告消息
make[1]: Entering directory `/home/userid/rowboat-android/kernel'
Building modules, stage 2.
MODPOST 1 modules
WARNING: "omap_device_build" [/home/userid/myfiles/lcdc_load_device.ko] undefined!
WARNING: "omap_hwmod_lookup" [/home/userid/myfiles/lcdc_load_device.ko] undefined!
make[1]: Leaving directory `/home/userid/rowboat-android/kernel'
下面是Makefile文件
obj-m :=lcdc_load_device.o
lcdc_load_device-m := ../rowboat-android/kernel/arch/arm/plat-omap/omap_device.o
lcdc_load_device-m += ../rowboat-android/kernel/arch/arm/mach-omap2/omap_hwmod.o
ccflags-m := -I$(src)/../rowboat-android/kernel/arch/arm/plat-omap/include/plat/
KDIR := /home/userid/rowboat-android/kernel/
PWD := $(shell pwd)
default:
$(MAKE) ARCH=arm CROSS_COMPILE=/home/userid/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi- -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
我怀疑makefile文件是找到头文件“omap_device_build”和“omap_hwmod_lookup “函数。
感谢您的帮助,并感谢您的提前。
答
谢谢mbratch并征求他们的意见
为了解决警告烂漫噪音,符号需要导出。对于上述问题的地方
EXPORT_SYMBOL(omap_device_build) in omap_device.c
EXPORT_SYMBOL(omap_hwmod_lookup) in omap_hwmod.c
并编译内核。然后针对编译的内核编译可加载的内核模块。执行以下步骤来验证是否符号已经远销
grep omap_device_build /proc/kallsyms
or
grep omap_device_build Module.symvers
欲了解更多详细信息,请参考以下链接
评论,欢迎
谢谢你
这是完整的makefile吗?它使用不在makefile中的目标('modules')再次调用'make'。你输入的'make'命令是什么。它只是“制造”? – lurker
是的,这是完整的makefile。我进入了make。你能澄清第二个陈述吗? rowboat-android/kernel确实有一个makefile。看起来像我的问题可能在KDIR变量 –
生成文件中的默认目标调用“$(MAKE)”,目标是“模块”,因此我不确定它会在哪里选择该目标。但这与警告无关。有些东西正在调用这些函数,而没有在库中找到它们。 – lurker