实际上我在编译 gcc-4.7.2 时遇到了这个问题。但我可以简单地重现问题如下:
我有一个简单的源文件 hello.c 用于测试。它的内容只是一个包含指令:
#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
[...]
似乎如果有尾随:
,C_INCLUDE_PATH
将.
自动添加。这是gcc的功能还是错误?
这里说明了这如何破坏我的 gcc 编译:Error Compiling gcc-4.7.2
编译器:gcc-4.6.1
操作系统:Ubuntu 11.10
谢谢。