MSVC ++ 2005または2008の大規模なソリューションで重複したヘッダーを見つけるにはどうすればよいですか?
-
03-07-2019 - |
質問
Visual Studio(C ++)で、.cppファイルで定義されている重複ヘッダーを簡単に見つける方法はありますか?
この状況を検出する方法も探しています:
- AにBが含まれるC
- AにはCが含まれます
- => AはCを含める必要はありません
解決
この状況を検出したい場合は、このマクロをすべてのファイルの先頭に追加できます。ファイルの名前をAに置き換えます
#if A_H
#error "Duplicate include"
#else
#define A_H
#endif
他のヒント
一般に、#pragmaを1回、または同等のマクロガードでマークして、それを気にするのをやめます。
MSコンパイラを使用している場合、#pragmaメッセージ(IIRC、#pragma warningまたは#pragma errorの可能性があります)を各ヘッダーファイルの最上部にヘッダーファイルの名前と共に入れて、ビルド出力には、コンパイルされるファイルごとに含まれるすべてのリストが表示されます。
システムのヘッダーファイルは含まれないため、ヘッダーファイルに最適です。
含まれているすべてのヘッダーを表示する場合は、コンパイルオプションを編集して、を含めます。 / P(ファイルへの前処理)。コードをコンパイルしませんが、代わりにプリプロセッサをファイルにリダイレクトします。その後、#repステートメントを介してgrepを実行できます。これらのファイルは大きくなることに注意してください。
PC-Lint(およびおそらく他のlintツール)は、未使用のインクルードファイルを示すことができます。
所属していません StackOverflow