当前位置: 技术问答>linux和unix
把一个驱动添加到内核带来的编译问题.
来源: 互联网 发布时间:2016-11-09
本文导语: 编译错误如下: arm-linux-ld -r -o usbcore.o usb.o usb-debug.o hub.o hcd.o make[3]: *** 没有规则可以创建“usbdrv.o”需要的目标“spca5xx/spca5xx.o”。 停止。 1.把一个spca5xx驱动添加到Linux-2.4.21内核中 2.代码是在drivers/usb/spca5xx目...
编译错误如下:
arm-linux-ld -r -o usbcore.o usb.o usb-debug.o hub.o hcd.o
make[3]: *** 没有规则可以创建“usbdrv.o”需要的目标“spca5xx/spca5xx.o”。 停止。
1.把一个spca5xx驱动添加到Linux-2.4.21内核中
2.代码是在drivers/usb/spca5xx目录下
3.usb/目下的makefile文件关键语句
usbcore的依赖文件如下:
usbcore-objs := usb.o usb-debug.o hub.o
usbcore.o: $(usbcore-objs)
$(LD) -r -o $@ $(usbcore-objs)
spca5xx的文件如下:
subdir-$(CONFIG_USB_SPCA5XX) += spca5xx
ifeq ($(CONFIG_USB_SPCA5XX),y)
obj-y += spca5xx/spca5xx.o
endif
其中CONFIG_USB_SPCA5XX是在跟目录的.config中能查找到CONFIG_USB_SPCA5XX=y.
从上面的分析看usbcore.o和spca5xx.o根本不存在依赖关系,但为什么会出现[没有规则可以创建“usbdrv.o”需要的目标“spca5xx/spca5xx.o”。]的错误呢.
arm-linux-ld -r -o usbcore.o usb.o usb-debug.o hub.o hcd.o
make[3]: *** 没有规则可以创建“usbdrv.o”需要的目标“spca5xx/spca5xx.o”。 停止。
1.把一个spca5xx驱动添加到Linux-2.4.21内核中
2.代码是在drivers/usb/spca5xx目录下
3.usb/目下的makefile文件关键语句
usbcore的依赖文件如下:
usbcore-objs := usb.o usb-debug.o hub.o
usbcore.o: $(usbcore-objs)
$(LD) -r -o $@ $(usbcore-objs)
spca5xx的文件如下:
subdir-$(CONFIG_USB_SPCA5XX) += spca5xx
ifeq ($(CONFIG_USB_SPCA5XX),y)
obj-y += spca5xx/spca5xx.o
endif
其中CONFIG_USB_SPCA5XX是在跟目录的.config中能查找到CONFIG_USB_SPCA5XX=y.
从上面的分析看usbcore.o和spca5xx.o根本不存在依赖关系,但为什么会出现[没有规则可以创建“usbdrv.o”需要的目标“spca5xx/spca5xx.o”。]的错误呢.
|
makefile的依赖关系啊,[没有规则可以创建“usbdrv.o”需要的目标“spca5xx/spca5xx.o”。]
就告诉你有个目标的生成依赖spca5xx/spca5xx.o,所以你要先生成它才行啊。
O_TARGET := spca5xx.o
你定义了它怎么生成,自然就ok了
就告诉你有个目标的生成依赖spca5xx/spca5xx.o,所以你要先生成它才行啊。
O_TARGET := spca5xx.o
你定义了它怎么生成,自然就ok了