所以我在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"
这个错误是什么意思?我该怎么做才能解决它?
答案 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