- 締切済み
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のオプションの意味を見てみましたがよくわかりませんでした。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tonasuke
- ベストアンサー率46% (7/15)
「-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がどのようなデフォルト設定で動作しているか、確認してみて下さい。表示されない各種オプションが指定されていることもわかるはずです。
- ogohs
- ベストアンサー率33% (5/15)
gccで使用されるインクルード場所は、 環境変数INCLUDEに設定されます。 特別設定されていなくても、OSの設定として/usr/include等は 入っています。 特別に追加したい場合は、環境変数INCLUDEに追加するか、 gccのオプションに-I で追加してみてください。
- notnot
- ベストアンサー率47% (4900/10359)
-print-search-dirs は、gcc コマンドがコンパイラ等の本体を探すパスなので、#includeのヘッダファイルの検索場所とは無関係です。 /usr/includeを表示するオプションはわかりません。/usr/include 固定だから表示オプションは無いのでは?
お礼
ありがとうございます。 なるほどー。こんな風にして調べられるのですね。 さっそくやってみます。