1. ホーム
  2. c++

[解決済み] ヘッダーファイルがどこからインクルードされたかを知るには?

2022-08-27 16:07:07

質問

g++ がインクルードファイルを見つけることができた場所を知るにはどうしたらよいでしょうか。 基本的には、もし私が

#include <foo.h>

g++は検索パスをスキャンし、パスを追加または変更するために任意のインクルードオプションを使用します。 しかし、結局のところ、g++がコンパイルするために選択したfoo.hの絶対パスを知る方法はあるのでしょうか? 特に、無数の検索パスの中に1つ以上のfoo.hがある場合に関連します。

それを達成するための短い方法... デフォルトとすべてのインクルード オプションを含む後、その最終的な検索パスが何であるかを g++ に教えてもらう方法はありますか?

どのように解決するのですか?

インクルードファイルの絶対パスをリストアップしたmake dependenciesを与えます。

gcc  -M showtime.c

システムインクルードが不要な場合(つまり #include <something.h> ) を使用します。

gcc  -MM showtime.c