5
我使用GCC中的-MM
标志为对象生成makefile依赖关系。该makefile简要看起来像这样:GCC makefile依赖关系生成路径
-include autodep
...
$(TARGET): build $(OBJECTS)
$(CC) -shared -o [email protected] $(OBJECTS)
$(CC) -MM $(SOURCES) > autodep
来源位于文件夹src
。然而,autodep
文件将包含对象目标没有他们的相对路径:
foo.o: src/foo.c src/foo.h
bar.o: src/bar.c src/bar.h src/baz.h
如何,我应该把他们变成这样:
src/foo.o: src/foo.c src/foo.h
src/bar.o: src/bar.c src/bar.h src/baz.h
?
我试过使用-MT
标志,但它似乎完全放弃了对象目标。
谢谢!我使用'foreach'循环,'autodep'的内容现在是正确的。但它似乎并不奏效。使用这个问题的例子,如果我更改'src/bar.h'并运行'make',我只是'make:\'src/foo.o'是最新的'。 – 2013-03-15 13:48:08
通过在'all:'之后放置'-include'来解决它。 – 2013-03-15 18:38:58