すべての.cppファイルは2つの.hファイルに依存していますか?
質問
メイクファイルには、次の行があります:
helper.cpp: dtds.h
これにより、dtds.hが変更されるたびにhelper.cppが再構築されます。ただし、次のような2つのヘッダーファイルのいずれかが変更された場合、プロジェクト内のすべてのファイルを再構築する必要があります。
*.cpp: h1.h h2.h
明らかにそれは機能しませんが、nmakeに自分のやりたいことをさせる正しい方法がわかりません。誰か助けてもらえますか?個々のファイルがh1.hおよびh2.hに依存することを手動で指定する必要はありません。
ありがとう。 (Visual Studio 2005に含まれているnmakeを使用しています。)
解決 2
ご協力ありがとうございます、クリストフ。試しました:
.cpp.obj: h1.h h2.h
そして有用なエラーメッセージが表示されました:
makefile(58) : fatal error U1086: inference rule cannot have dependents
コンパイルしたいファイルのリストを作成し、リスト全体に依存関係を追加することで解決しました。
files = file1.obj file2.obj file3.obj
$(files): h1.h h2.h
他のヒント
試用
%.cpp : h1.h h2.h
それはGNU makeで動作します-nmakeに互換性があるかどうかはわかりません...
編集:そしてbtw:はいけません
helper.o : dtds.h
%.o : h1.h h2.h
結局のところ、 .cpp
ファイルをリメイクしたくない(ソースファイルをどのように作成しますか?)が、再コンパイル...
Edit2: NMAKEリファレンス。 これによると、
>.cpp.obj: h1.h h2.h
動作する可能性があります...
所属していません StackOverflow