• 締切済み

gccのインクルードパスの確認

#include <stdio.h> は デフォルトのインクルードパス(/usr/include/)からstdio.hファイルを 探しますよね? http://oshiete1.goo.ne.jp/kotaeru.php3?q=2006018 ここに書いてあるように gcc -print-search-dirs を実行してみたのですが、/usr/include の記述は 含まれていませんでした。 http://www.sra.co.jp/wingnut/gcc/gcc-j.html で-print-search-dirsのオプションの意味を見てみましたがよくわかりませんでした。

みんなの回答

  • tonasuke
  • ベストアンサー率46% (7/15)
回答No.3

「-v」オプションを使用すれば、gccがどのような動作をしているか全て表示されます。例えは、以下のようにします。 ============================================================ # cat sample.c ←gccを動作させるためには、プログラムが必要(ここではgccのオプションを見たいだけなので、簡単なプログラムでよい。) #include <stdio.h> main() { printf( "Hello, World!!\n" ); } # gcc -v -I./hogehoge sample.c Using built-in specs. Target: i386-redhat-linux コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux スレッドモデル: posix gcc バージョン 4.1.1 20070105 (Red Hat 4.1.1-52) /usr/libexec/gcc/i386-redhat-linux/4.1.1/cc1 -quiet -v -I./hogehoge sample.c -quiet -dumpbase sample.c -mtune=generic -auxbase sample -version -o /tmp/ccjKdz74.s 存在しないディレクトリ "/usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/include" を無視します #include "..." の探索はここから始まります: #include <...> の探索はここから始まります: ./hogehoge ←コンパイルオプションで「-I./hogehoge」を指定したので、そのディレクトリを探している。 /usr/local/include /usr/lib/gcc/i386-redhat-linux/4.1.1/include /usr/include ←「-I」オプションを指定しなくても、デフォルトで探しにいっている。 探索リストの終わり GNU C version 4.1.1 20070105 (Red Hat 4.1.1-52) (i386-redhat-linux) compiled by GNU C version 4.1.1 20070105 (Red Hat 4.1.1-52).  [以下、省略] # ============================================================ gccがどのようなデフォルト設定で動作しているか、確認してみて下さい。表示されない各種オプションが指定されていることもわかるはずです。

bonji0304
質問者

お礼

ありがとうございます。 なるほどー。こんな風にして調べられるのですね。 さっそくやってみます。

  • ogohs
  • ベストアンサー率33% (5/15)
回答No.2

gccで使用されるインクルード場所は、 環境変数INCLUDEに設定されます。 特別設定されていなくても、OSの設定として/usr/include等は 入っています。 特別に追加したい場合は、環境変数INCLUDEに追加するか、 gccのオプションに-I で追加してみてください。

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.1

-print-search-dirs は、gcc コマンドがコンパイラ等の本体を探すパスなので、#includeのヘッダファイルの検索場所とは無関係です。 /usr/includeを表示するオプションはわかりません。/usr/include 固定だから表示オプションは無いのでは?

関連するQ&A