我有一个充满c源文件的目录,每个文件都可以编译成一个独立的内核模块,以下Makefile不起作用:
sources := $(wildcard *.c)
obj-m += $(patsubst %.c,%.o,$(sources))
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
但如果我使用obj-m += mod1.o mod2.o
,这将有效。
答案 0 :(得分:1)
您可以使用makefile
中的以下片段obj-m += $(subst .c,.o, $(wildcard *.c))
subst
会将.c
后缀替换为.o
答案 1 :(得分:0)
尝试使用类似的东西:
obj-m += $(sources:.c=.o)