编译器 GCC 编译错误

5
我知道编译编译器是一种讽刺。但我需要这个编译器的特定版本,而CentOS 5.x仓库里没有最新版本的GCC。
我需要的版本是4.3.2,但我只有4.1.1。
我按照这篇教程安装了gcchttp://www.mjmwired.net/resources/mjm-fedora-gcc.html,并在配置(编译之前)时使用了以下参数:
/root/gcc/gcc-4.3.6/configure --prefix=/opt/gcc43 --program-suffix=43 --enable-languages=c,c++ --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --disable-multilib
最后一个选项--disable-multilib为我解决了先前编译尝试中遇到的错误(经过长时间编译后...)。
此外,我设置了一个环境变量,因为以前我遇到过错误,所以我设置如下:
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib:$LD_LIBRARY_PATH

确保编译器在该目录中搜索 mpfr 和 gmp 库(这是必需的)

因此,我执行了“make”命令。

我以为一切都没问题了,因为这次编译花费的时间更长了(在设置那个变量之前的最后一次尝试花费了大约2小时编译)。

我在 Amazon Web Services 中使用了一个微型实例,该实例只有一个单核 x86_64 处理器和 613 MB 的 RAM,所以编译大约需要 9 小时。

不幸的是,我又遇到了错误!!现在我得到了这个:

make[2]: Entering directory `/root/gcc/build'
make[3]: Entering directory `/root/gcc/build'
rm -f stage_current
make[3]: Leaving directory `/root/gcc/build'
Comparing stages 2 and 3
warning: ./cc1-checksum.o differs
warning: ./cc1plus-checksum.o differs
Bootstrap comparison failure!
./gcc.o differs
./varasm.o differs
./except.o differs
./i386.o differs
make[2]: *** [compare] Error 1
make[2]: Leaving directory `/root/gcc/build'
make[1]: *** [stage3-bubble] Error 2
make[1]: Leaving directory `/root/gcc/build'
make: *** [all] Error 2

有什么建议吗?

3
“我知道,编译一个编译器很讽刺。” 技术术语应该是“引导”(bootstrapping),而不是“讽刺”。 - thiton
2个回答

7

很可能您在尝试过程中没有正确清理。请执行make distclean,然后再次尝试。对不起。


1
“distclean” 后,“引导程序”起作用了,但是我发现这是浪费时间,因为我使用的是错误版本的CentOS,而且我还找到了包含我所需软件包的存储库。无论如何,我更愿意说我学到了一些东西。 - Mr_LinDowsMac

0
你可以从 Fedora 16 的 .src.rpm 抓取并在其上运行 rpmbuild ---rebuild。如果有任何奇怪的 Red Hat / CentOS / Fedora 标志需要担心,那应该能处理掉。(我假设你想要的版本没有 EPEL RPM?)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接