Gccを使用して非常に単純なソースファイルをコンパイルする場合、stdioやstdlibなどの標準インクルードファイルへのパスを指定する必要はありません。
GCCはこれらのファイルを見つける方法をどのように知っていますか?
内部に/usr/include
パスが組み込まれていますか、または他のOSコンポーネントからパスを取得しますか?
gcc
/g++
で使用されるデフォルトのパスとそれらの優先度を把握するには、次のコマンドの出力を調べる必要があります。
gcc -xc -E -v -
gcc -xc++ -E -v -
クレジットはQt Creator teamに送られます。
出力が短いコマンドがあります。これにより、行からインクルードパスを1つのスペースで自動的に切り取ることができます。
$ echo | gcc -Wp,-v -x c++ - -fsyntax-only
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2/x86_64-redhat-linux
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2/backward
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include
/usr/local/include
/usr/include
End of search list.
クレジットはlibc ++ front-page になります。
Gccの検索パスについて説明した記事を次に示します。 http://www.network-theory.co.uk/docs/gccintro/gccintro_21.html
さらに、-I
スイッチを使用して追加の検索パスを指定できます。これは、コマンドラインまたはメイクファイルで実行できます。
次のコマンドを実行して、デフォルトの検索パスをリストします。
$(gcc -print-prog-name = cc1)-v