当.c文件在不同目录下时,GNU make pattern规则

时间:2018-05-06 13:32:35

标签: makefile gnu-make

我可以编写类似的模式规则来将.c文件编译为.o个文件。

%.o:%.c
    $(CC) -c $< $(CFLAGS) -o $@ 

但似乎只有当所有c文件都位于同一目录时,此方法才有效。

如果我的项目结构是这样的

|-folder1
|----a.c
|----b.c
|-folder2
|----c.c
|----d.c
|Makefile

我必须将Makefile更改为此

%.o:folder1/%.c
    $(CC) -c $< $(CFLAGS) -o $@ 
%.o:folder2/%.c
    $(CC) -c $< $(CFLAGS) -o $@ 

如果我有很多文件夹,我认为重复这样的代码不是解决问题的正确方法。

任何人都有更好的解决方案吗?

0 个答案:

没有答案