[英]Building a kernel module from multiple source files
I'm having some trouble with the bane of my existance, the Makefile. 对于我存在的苦难,Makefile,我遇到了一些麻烦。 I'm trying to create a kernel module (.ko file) called "can.ko".
我正在尝试创建一个名为“can.ko”的内核模块(.ko文件)。 I'm compiling a dozen or so source files:
我正在编译十几个源文件:
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)
The compiler spits out that it can't find. 编译器吐出它无法找到的内容。 "can.c".
“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.
I'm pretty sure I don't need to name the output object after a source file, so clearly something is wrong. 我很确定我不需要在源文件之后命名输出对象,所以显然有些错误。 I did some serching around on getting more than 1 source file together and found this as another option:
我做了一些关于将多个源文件放在一起并发现这是另一种选择:
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
This time I'm being told that it doesn't know what to do with .c files: 这次我被告知它不知道如何处理.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
Can anyone help me get this thing working? 任何人都可以帮我把这个东西搞定吗?
can-objs
needs to refer to .o files, not .c files. can-objs
需要引用.o文件,而不是.c文件。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.