2
我遇到了麻煩,我的存在,Makefile的麻煩。我試圖創建一個名爲「can.ko」的內核模塊(.ko文件)。我正在編譯一打左右的源文件:從多個源文件構建一個內核模塊
TARGET = can
OBJS = can_core.o can_open.o can_select.o can_sysctl.o can_write.o can_close.o \
can_ioctl.o can_read.o can_util.o can_debug.o can_error.o can_async.o
KDIR = /lib/modules/3.1.10-1.16-desktop/build
PWD := $(shell pwd)
obj-m += $(TARGET).o
default:
make -C $(KDIR) M=$(PWD) modules
$(TARGET).o : $(OBJS)
編譯器吐出它找不到。 「can.c」。
make[4]: *** No rule to make target `/home/mike/iCOM-SDKv1.11.000/framework/drivers/can/can.c', needed by `/home/mike/iCOM-SDKv1.11.000/framework/drivers/can/can.o'. Stop.
我很確定我不需要在源文件之後命名輸出對象,所以顯然有些問題。我做了一些在得到超過1個源文件一起圍繞serching,發現這是另一種選擇:
TARGET = can
can-objs := can_core.c can_open.c can_select.c can_sysctl.c can_write.c \
can_close.c can_ioctl.c can_read.c can_util.c \
can_debug.c can_error.c \
can_async.c
KDIR = /lib/modules/3.1.10-1.16-desktop/build
PWD := $(shell pwd)
obj-m += $(TARGET).o
default:
make -C $(KDIR) M=$(PWD) modules
這次我被告知,它不知道如何處理.c文件做:
LD [M] /home/mike/iCOM-SDKv1.11.000/framework/drivers/can/can.o
/home/mike/iCOM-SDKv1.11.000/framework/drivers/can/can_core.c: file not recognized: File format not recognized
任何人都可以幫助我得到這個東西的工作?
的可能重複[如何安排一個Makefile編譯多個.c文件內核模塊?](http://stackoverflow.com/questions/349811/how-to-arrange-a-makefile-編譯一個內核模塊與多個c文件) – BB9z