내 존재의 단점 인 Makefile에 문제가 있습니다. "can.ko"라는 커널 모듈 (.ko 파일)을 만들려고합니다. 나는 12 개 정도의 소스 파일을 컴파일 중이다.여러 소스 파일에서 커널 모듈 빌드
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
아무도 내가이 일을하도록 도와 줄 수 있습니까?
가능한 중복 [여러 .c 인 파일과 커널 모듈을 컴파일하기위한 Makefile을 준비하는 방법?] (http://stackoverflow.com/questions/349811/how-to-arrange-a-makefile- 다중 c 파일을 사용하는 커널 모듈 컴파일) – BB9z