当前位置: 技术问答>linux和unix
编译Linux时遇到undefined reference to
来源: 互联网 发布时间:2016-05-17
本文导语: 最近在向Linux中添加一些驱动,用于支持现行的主板。 具体为在Linux中添加了两个驱动,一个用于控制CPU的GPIO,一个用于控制主板上的LED灯。 而控制主板的LED灯的驱动需要依赖于控制GPIO的驱动。于是在GPIO的驱动中,...
最近在向Linux中添加一些驱动,用于支持现行的主板。
具体为在Linux中添加了两个驱动,一个用于控制CPU的GPIO,一个用于控制主板上的LED灯。
而控制主板的LED灯的驱动需要依赖于控制GPIO的驱动。于是在GPIO的驱动中,利用EXPORT_SYMBOL导出了两个函数,并单独写了一个头文件给LED灯驱动使用。手工编译这两个模块的时候是OK的,但是通过修改Kconfig和Makefile加到Linux中,直接编译Linux会出现如下错误:
drivers/built-in.o: In function `led_ioctl':
psx610e_led.c:(.text+0xfddc): undefined reference to `pxe_gpio_write'
psx610e_led.c:(.text+0xfe28): undefined reference to `pxe_gpio_write'
drivers/built-in.o: In function `led_init':
psx610e_led.c:(.text+0xffcc): undefined reference to `pxe_gpio_write'
psx610e_led.c:(.text+0x10010): undefined reference to `pxe_gpio_write'
不知道怎么解决这样的问题。
具体为在Linux中添加了两个驱动,一个用于控制CPU的GPIO,一个用于控制主板上的LED灯。
而控制主板的LED灯的驱动需要依赖于控制GPIO的驱动。于是在GPIO的驱动中,利用EXPORT_SYMBOL导出了两个函数,并单独写了一个头文件给LED灯驱动使用。手工编译这两个模块的时候是OK的,但是通过修改Kconfig和Makefile加到Linux中,直接编译Linux会出现如下错误:
drivers/built-in.o: In function `led_ioctl':
psx610e_led.c:(.text+0xfddc): undefined reference to `pxe_gpio_write'
psx610e_led.c:(.text+0xfe28): undefined reference to `pxe_gpio_write'
drivers/built-in.o: In function `led_init':
psx610e_led.c:(.text+0xffcc): undefined reference to `pxe_gpio_write'
psx610e_led.c:(.text+0x10010): undefined reference to `pxe_gpio_write'
不知道怎么解决这样的问题。
|
出错信息本身是找不到链接的“pxe_gpio_write”,所以这个函数在哪里你把drivers/built-in.o的依赖关系加上就好了。
|
手工编译这两个模块的时候是OK的,但是通过修改Kconfig和Makefile加到Linux中
-I path ?
-I path ?