教えて!gooにおける不適切な投稿への対応について

(1)gccは、オプションを指定しないで、/usr/include以外のヘッダーファイルを見に行きますか?

(2)/usr/includeの中はディストリビューションによって異なりますか?

(3)/usr/includeはアプリケーションなどをインストールしたりして、増えたりするものなんでしょうか?

gooドクター

A 回答 (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つ疑問なんですが、

> (2)/usr/includeの中はディストリビューションによって異なりま>すか?

>異なります。ただし、普通は glibc が要なので、コア部分はほとん>ど違わないでしょうが。

とありますが、僕の知識不足で理解することができませんでした。

includeファイルとglibcとはどうゆう関係なんでしょうか?

すいませんが知っていましたら、ご教授お願いします。

補足日時:2012/06/15 17:51
    • good
    • 0

> (1)gccは、オプションを指定しないで、/usr/include以外のヘッダーファイルを見に行きますか?



とりあえずカレントディレクトリは参照するはずです。

ただし、#include "file" と #include <file> では、違うかも知れません

> (2)/usr/includeの中はディストリビューションによって異なりますか?

異なる可能性が高いと思います。
ディストリビューションのバージョンによっても異なるかと

> (3)/usr/includeはアプリケーションなどをインストールしたりして、増えたりするものなんでしょうか?

フルパッケージのインストールを強要しないディストリビューションでは、追加されることもあるでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

人気Q&Aランキング