5
GCCで-MM
フラグを使用してオブジェクトのメイクファイル依存関係を生成します。メークファイルは簡単に次のようになります。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 'が最新のものになります。 –
'all:'の後ろに '-include'を置いて解決しました。 –