- ベストアンサー
linuxの/usr/includeについて
(1)gccは、オプションを指定しないで、/usr/include以外のヘッダーファイルを見に行きますか? (2)/usr/includeの中はディストリビューションによって異なりますか? (3)/usr/includeはアプリケーションなどをインストールしたりして、増えたりするものなんでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
gccと言ってもデフォルトは初期設定や環境によって異なるので、OSのプリインストールされている構成を前提に回答します。 > (1)gccは、オプションを指定しないで、/usr/include以外のヘッダーファイルを見に行きますか? どこを見に行くかは、gcc/cppdefault.c いうファイルで定義されています。 関係ありそうなのは、 LOCAL_INCLUDE_DIR: /usr/local/include PREFIX_INCLUDE_DIR: $(prefix)/include GCC_INCLUDE_DIR: $(libdir)/gcc/$(target_noncanonical)/$(version)/include TOOL_INCLUDE_DIR: $(prefix)/$(target_noncanonical)/include STANDARD_INCLUDE_DIR: /usr/include /usr/include以外ということですので、以下の3つが該当します。 /usr/local/include /usr/lib/gcc/$(target_noncanonical)/$(version)/include /usr/$(target_noncanonical)/include target_noncanonicalとは、「x86_64-redhat-linux」などのような文字列です。 versionは例えば4.1.2 であれば、「4.1.2」です。 > (2)/usr/includeの中はディストリビューションによって異なりますか? 異なります。ただし、普通は glibc が要なので、コア部分はほとんど違わないでしょうが。 > (3)/usr/includeはアプリケーションなどをインストールしたりして、増えたりするものなんでしょうか? rpm はdeb の開発用のパッケージ(rpm であれば「-devel」と付いているやつです)をインストールすれば増えます。
その他の回答 (1)
- dev_null
- ベストアンサー率67% (37/55)
> (1)gccは、オプションを指定しないで、/usr/include以外のヘッダーファイルを見に行きますか? とりあえずカレントディレクトリは参照するはずです。 ただし、#include "file" と #include <file> では、違うかも知れません > (2)/usr/includeの中はディストリビューションによって異なりますか? 異なる可能性が高いと思います。 ディストリビューションのバージョンによっても異なるかと > (3)/usr/includeはアプリケーションなどをインストールしたりして、増えたりするものなんでしょうか? フルパッケージのインストールを強要しないディストリビューションでは、追加されることもあるでしょう。
補足
わかりやすい説明ありがとうございます。 質問の内容は理解できました。 ありがとうございます。 1つ疑問なんですが、 > (2)/usr/includeの中はディストリビューションによって異なりま>すか? >異なります。ただし、普通は glibc が要なので、コア部分はほとん>ど違わないでしょうが。 とありますが、僕の知識不足で理解することができませんでした。 includeファイルとglibcとはどうゆう関係なんでしょうか? すいませんが知っていましたら、ご教授お願いします。