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