を含め、各翻訳単位内のファイルを含めるあなたの階層を一覧表示しています。これは、大規模プロジェクトでコンパイル時間を最適化/改善するための非常に便利なオプションです。/ショーは、私はVC++は、/ショーと呼ばれるオプションが含まれていることがわかりグラムで同等のオプション++
質問
は、これらの(同様の出力)を取得するためのGNU G ++コンパイラのいずれかの同等のオプションはありますか?
を含め、各翻訳単位内のファイルを含めるあなたの階層を一覧表示しています。これは、大規模プロジェクトでコンパイル時間を最適化/改善するための非常に便利なオプションです。/ショーは、私はVC++は、/ショーと呼ばれるオプションが含まれていることがわかりグラムで同等のオプション++
質問
は、これらの(同様の出力)を取得するためのGNU G ++コンパイラのいずれかの同等のオプションはありますか?
これを制御するためのさまざまなオプションがあります。 -MDは、ファイルが一覧表示されます
、-MMDはコンパイル
-Mの副作用のような非システムファイルの一覧が表示されます、-MMは、リストを生成する代わりにコンパイルされます。
-MQ、-MG、-MP、および-MTは、makefileターゲットフラグメントを生成します。 -MFを使用すると、出力ファイル名を指定できます。
あなたのヘッダーのすべてはそれが本当に短くて簡単なスクリプトで行うことができるファイルの最上部に表示されますが含まれている場合。
gcc -H
ヘッダーファイルの名前が使用されたときに表示されます。
再帰的なヘッダーファイルの可能性は高いです。ヘッダーガードの有無にかかわらず、ダブルインクルードの影響があります。これらをスクリプトで扱うことは可能ですが、難しい課題です。コンパイラがオプションを提供している場合、私はそれを好むでしょう:)。あなたのヘッダーのすべてが、それは非常に簡単であるべき警備員が含まれている場合は –
(私が間違っている場合は、私に反例を与えてください、私は考えることはできません)。もしあなたがよくガードを含んでいないのであれば、あなたはもっと大きな問題を抱えています。 – stnr
システムヘッダはどうですか?外部のガード、または条件付きでお互いを含む2つのヘッダーはどうですか?さらに、コンパイラが実際に何をしているのか、あなたのスクリプトが考えるべきものではないことを知りたい。 –