所以我正在 Cygwin 中构建 GCC 4.6.0,但我遇到了困难。我尝试从与 gcc-4.6.0 目录同一级别的构建目录配置 gcc,我得到:
configure: error: in `/usr/local/contrib/gcc-build/gcc': configure: error: C++ preprocessor "/lib/cpp" fails sanity check See `config.log' for more details. make[2]: *** [configure-stage1-gcc] Error 1 make[2]: Leaving directory `/usr/local/contrib/gcc-build' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory `/usr/local/contrib/gcc-build' make: *** [all] Error 2
我检查了 config.log,内容如下:
conftest.c: In function `main': conftest.c:16: error: `choke' undeclared (first use in this function) conftest.c:16: error: (Each undeclared identifier is reported only once for each function it appears in.) conftest.c:16: error: parse error before "me"
这个错误是什么意思?我可以做什么来修复它?
最佳答案
tl;dr - 首先,there's a Wikia page for this (也刚刚修改过)。如果您尝试构建 C++ 编译器(通常使用“--enable-languages=c,c++”),请确保您已安装 gcc-g++ 软件包!如果没有它,您的构建将会像您所看到的那样失败。
编辑 2:不久前成功构建 GCC 4.6.0(C 和 C++ 目标)后,我修改了 Wikia 页面。
首先,您的帖子有点旧,因此如果您找到了答案,请告诉我们!
您使用哪组指令来构建这个?我自己正在使用 this wiki page 解决这个问题我撞到了同样的墙。您是否查看了正在构建的文件夹中的 config.log 文件?它说什么出了什么问题?对我来说,它缺少 *ppl_c.h*,我现在正在尝试查找它,并且我还反复收到“无法执行'cc1plus'”错误。因为这是配置,其中一些可能是正常的 - 也许全部都是正常的(失败的检查可能仅仅意味着将使用替代方法)。接下来我打算尝试 4.3.0,看看它是否有效以及 config.log 的比较情况。
编辑1:安装gcc-g++!这将清除 cc1plus 障碍。
我的设置,仅供记录(注意:我的主机操作系统是 Windows 7 x64):
我使用的核心 Cygwin 软件包是最新的(非实验性的):
$ cygcheck -c bash binutils bzip2 gcc-core gcc-java gzip m4 make unzip zip
Cygwin Package Information
Package Version Status
bash 4.1.10-4 OK
binutils 2.20.51-2 OK
bzip2 1.0.6-1 OK
gcc-core 3.4.4-999 OK
gcc-g++ 3.4.4-999 OK
gzip 1.4-1 OK
m4 1.4.16-1 OK
make 3.81-2 OK
unzip 6.0-10 OK
zip 3.0-11 OK
我特别为 GCC 提供的软件包,按照构建和安装的顺序:
gmp-5.0.2
mpfr-3.0.1
mpc-0.9
gcc-4.6.0 (trying to build "c,c++" targets only)
路径设置正确(至少按照上面的说明):
LD_LIBRARY_PATH=/usr/local/lib
LIBRARY_PATH=/usr/local/lib
CPATH=/usr/local/include
关于GCC 4.6.0 构建健全性检查错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5762816/