GCC 4.6.0构建健全性检查错误

时间:2011-04-23 07:06:12

标签: gcc compiler-construction build cygwin

所以我在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"

这个错误是什么意思?我该怎么做才能解决它?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

我在cygwin中遇到过这个问题。有多个版本的gcc即。 gcc和gcc-4。卸载后者。问题解决了我!

答案 2 :(得分:1)

我在CentOS 5中,我无法通过上述建议解决问题。 Ian Lance Taylor的解决方法:

make all-gcc
make install-gcc