我在编译内核(包括内核驱动)时出现了如下错误:
ERROR: "usbnet_cdc_bind" [driver/usb/net/lg_vlc600.ko] undefined!
出现这种错误的原因是:
在“lg_vlc600.c”文件中调用了函数“usbne_cdc_bind”,而此函数却没有被定义。
有以下解决方法:
1.添加usbne_cdc_bind函数。多数情况是“usbne_cdc_bind”函数是存在于“lg_vlc600.c”所依赖的“*****.c”文件,所以我们首先通过lg_vlc600.c目录下的kcofig和makefile文件查找lg_vlc600.c所依赖的“****.c”文件。添加或者修改usbne_cdc_bind函数。(例如查看是否添加:EXPORT_SYMBOL(usbne_cdc_bind))
2.忽略编译lg_vlc600.c源程序。这种情况往往是我们修改或者替换了内核的某个文件,致使与之相关的lg_vlc600.c源程序在调用这个程序的时候出现错误。而实际上我们并不需要
lg_vlc600.c编译的模块。这个时候只需在内核根目录下执行:
make menuconfig
配置内核,取消lg_vlc600.c对应的模块编译就行了!