実際、gcc-4.7.2 をコンパイルするときにこの問題が発生しました。しかし、次のように問題を簡単に再現できます。
テスト用の単純なソース ファイル hello.c があります。その内容は単なる include ディレクティブです:
#include "hello.h"
bash では、最初に次のコマンドを実行します。
export C_INCLUDE_PATH=/home/dwang/local/include:
次に実行します:
gcc -v -E hello.c
検索パスを出力します。
#include "..." search starts here:
#include <...> search starts here:
/home/dwang/local/include
/export/scratch/packages/include/
.
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/include
[...]
:
次に、から末尾を削除するとC_INCLUDE_PATH
:
export C_INCLUDE_PATH=/home/dwang/local/include
検索パスは次のとおりです。
#include "..." search starts here:
#include <...> search starts here:
/home/dwang/local/include
/export/scratch/packages/include/
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/include
[...]
に末尾:
があれば自動的に追加されるようです。これは gcc の機能ですか、それともバグですか?C_INCLUDE_PATH
.
これが私のgccコンパイルをどのように壊すかは、ここに記載されています: Error Compiling gcc-4.7.2
コンパイラ: gcc-4.6.1
OS: Ubuntu 11.10
ありがとう。