GCC 4.6.0 构建健全性检查错误

标签 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"

这个错误是什么意思?我可以做什么来修复它?

最佳答案

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/

相关文章:

c++ - C++/gcc/linux 中的 Continuations/Coroutines/Generators

c++ - 为什么 gcc 和 clang 会为成员函数模板参数生成非常不同的代码?

c - 64 个寄存器或三个操作数指令在汇编级别哪个更有用?

java - 找不到 com.android.tools.build :gradle:2. 3.+ 的任何匹配项

xcode - 向 Xcode 添加了运行脚本阶段,但没有任何反应

iphone - 为什么找不到静态库头?

c - GCC 优化导致奇怪的问题 - 我该如何调试?

ios - 非法指令:4(适用于iOS)

java - Java 前向引用在不同情况下的行为是否不同?

java - 如何使用 Ant 脚本将 XML 文件包含到 jar 的根目录中?