すべての.cppファイルは2つの.hファイルに依存していますか?

StackOverflow https://stackoverflow.com/questions/418740

  •  03-07-2019
  •  | 
  •  

質問

メイクファイルには、次の行があります:

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

動作する可能性があります...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top