5

我知道,编译编译器很讽刺。但是我需要这个编译器的特定版本,而 CentOS 5.x 存储库没有最新版本的 GCC。

我需要的版本是 4.3.2,但我只有 4.1.1。

我按照本教程安装了 gcc http://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 --禁用检查 --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 中使用了一个 Micro 实例,这个实例只有 1 个单核 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

有什么建议么?

4

2 回答 2

7

您可能在两次尝试之间没有正确清理。做一个make distclean然后再试一次。对不起。

于 2011-12-28T03:40:57.537 回答
0

您可能可以获取例如 Fedora 16 的 .src.rpm 并在其上执行 rpmbuild ---rebuild。如果有任何时髦的 Red Hat / CentOS / Fedora 标志需要担心,那应该可以解决。(我假设您想要的版本还没有 EPEL RPM?)

于 2011-12-28T04:11:53.673 回答