内核驱动编译成模块报undefined的错误
在内核里编译时,同样的代码编译成.o放在zImage时可以正常编译的
但是选择编译成ko文件后就会报undefined!,但是实际这个未定义的函数或者变量都是可以有的
这个时候就和驱动对应的Makefile有关系
#obj-$(CONFIG_RADIO_TDA7786) += radio-tda7786.o tuner.o tda7786.o
obj-$(CONFIG_RADIO_TDA7786) += radio_tda7786.o
radio_tda7786-objs := radio-tda7786.o \
tuner.o \
tda7786.o
上面注释掉的编译成模块就会报undefined错误
改成下面这种就可以了
我的理解就是注释掉那种是告诉编译器三个独立的模块,而下面那种是把他们捆绑成一个模块,所以函数和变量就是相互使用。