我使用GCC中的
我应该如何将它们转化为这样:
-MM
标识来为对象生成makefile依赖项。生成的makefile大致如下:-include autodep
...
$(TARGET): build $(OBJECTS)
$(CC) -shared -o $@ $(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'已经是最新的
。 - Avidan Borisov-include
放在all:
之后解决了这个问题。 - Avidan Borisov