【发布时间】:2016-05-26 16:53:52
【问题描述】:
obj-m := $(MODNAME).o
ccflags-y := $(CCFLAGS)
src_files := $(wildcard $(foreach pat,*.c *.cpp *.s,src/$(pat) src/$(MODNAME)/$(pat)))
$(MODNAME)-objs := $(addsuffix .o, $(basename $(src_files)))
all:
make -C $(KDIR) M=$(shell pwd) modules
clean:
make -C $(KDIR) M=$(shell pwd) clean
我有这个用于构建内核模块的 make 文件。但是,每当我运行它时,我都会收到一条错误消息,指出没有规则可以制作目标 .c。 .c 不是源文件。如果我删除“if [-d src]”检查,那么我会收到一条错误消息,指出来自内核构建系统的递归 make 调用中不存在 src。如果我指定 src 的完整路径,它会给出相同的输出,说它找不到它(这真的很奇怪)。如果我硬编码 src_files 它可以工作(如果我没有复制和粘贴错误)。有人知道发生了什么吗?
【问题讨论】:
标签: module makefile linux-kernel