我可以编写类似的模式规则来将.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 $@
如果我有很多文件夹,我认为重复这样的代码不是解决问题的正确方法。
任何人都有更好的解决方案吗?