Построение модуля ядра из нескольких исходных файлов
У меня возникли некоторые проблемы с проклятием моего существования, файлом Makefile. Я пытаюсь создать модуль ядра (.файл ko) называется " can.нокаут". Я компилирую дюжину или около того исходных файлов:
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)
Компилятор выплевывает, что он не может найти. "мочь.с".
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.
Я почти уверен, что мне не нужно называть выходной объект после исходного файла, поэтому ясно, что что-то не так. Я сделал некоторые serching вокруг на получение более чем 1 исходного файла вместе и нашел это как еще один вариант:
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
Может кто-нибудь помочь мне заставить эту штуку работать?