• ベストアンサー

g++コンパイルしながら使用されたヘッダー・ライブラリのフルパスを表示させたい

宜しくお願い足します。 : posix gcc 3.2.2 20030222 (Red Hat Linux 3.2.2-5) g++: no input files の環境です。 $ g++ -o hoge hoge.cc としてコンパイルしながらにコンパイラがどのヘッダー、ライブラリを使用したかフルパスで表示させるにはどのようなオプションを指定すればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

#2です。 #3の方の書かれた-Mの方がいいですね。

その他の回答 (3)

  • colder
  • ベストアンサー率43% (30/69)
回答No.3

ヘッダだけなら(コンパイルはしてくれないけど) -M

narumi000
質問者

お礼

$ g++ hoge.cc -M や $ g++ hoge.cc -E で出力できました。どうも有り難うございました。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

> となりました。上記の検索リストからどのiostreamが使用されたと分かるのでしょうか? オプションということですので、一番近そうなものを書いたのですが、確かにこれではライブラリは分かってもヘッダはわかりませんね。 とりあえず、-Eオプションをつければ、フルパスでヘッダファイル名がわかりますが、結構見るのは大変だと思います。

narumi000
質問者

お礼

$ g++ hoge.cc -M や $ g++ hoge.cc -E で出力できました。どうも有り難うございました。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

-v

narumi000
質問者

補足

ご回答有り難うございます。 $ cat test5.cc #include<iostream> using namespace std; int main(void){ cout << "Hollow,World!" << endl; return 0; } $ g++ -o test5 test5.cc -v : "/usr/i386-redhat-linux/include" #include "..." :の検索はここから始まります: #include <...> :の検索ははここから始まります: /usr/include/c++/3.2.2 /usr/include/c++/3.2.2/i386-redhat-linux /usr/include/c++/3.2.2/backward /usr/local/include /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include /usr/include 検索リストの終り : となりました。上記の検索リストからどのiostreamが使用されたと分かるのでしょうか? 因みにiostreamは # find / -name iostream /usr/include/g++-3/iostream /usr/include/c++/3.2.2/iostream /usr/local/gcc2/include/g++-3/iostream にあります。

関連するQ&A