我知道,编译编译器很讽刺。但是我需要这个编译器的特定版本,而 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
有什么建议么?