![无法编译最新的 gcc](https://linux22.com/image/1536104/%E6%97%A0%E6%B3%95%E7%BC%96%E8%AF%91%E6%9C%80%E6%96%B0%E7%9A%84%20gcc.png)
我有 Linux CentOS 6.3,并且安装了 gcc 4.4.7 版本,这个版本比较老了。我想安装最新的 gcc。
我下载并解压了它,当我尝试
>./configure
它说我需要 GMP 4.2+、MPFR 2.4.0+ 和 MPC 0.8.0+
我成功安装了这些,然后当我./configure
再次尝试 gcc 时,现在我得到了
/usr/bin/ld: crt1.o: No such file: No such file or directory
collect2: ld returned 1 exit status
对此我尚未能够通过 Google 找到可行的解决方案。
该怎么办 ?
答案1
我能够通过以下方式解决此直接错误:
>./configure --enable-multilib --with-system-zlib
但还存在其他错误。
答案2
/usr/bin/ld: crt1.o: 没有此文件
# yum provides */crt1.o
# yum install gcc-c++ glibc-devel glibc-headers kernel-headers
此外,更换系统编译器并不是一个好主意。请不要这样做。你可以获得多个额外的编译器:devtoolset-3、-4、-6 →
# yum install centos-release-scl-rh centos-release-scl
# yum install devtoolset-3-gcc-c++ devtoolset-4-gcc-c++ devtoolset-6-gcc-c++
提供 gcc、g++ 版本 4.9.2、gcc、g++ 版本 5.3.1 以及 gcc、g++ 版本 6.3.1 https://www.softwarecollections.org/en/scls/rhscl/devtoolset-4/
注意:据我所知,gcc-7.x 无法与 CentOS 6.x 一起构建。操作系统太旧了。配置 gcc-5.3 的示例:
../gcc-5.3.0/configure --prefix=/usr/local/gcc53 --program-suffix=53 --enable-languages=c,c++ --with-system-zlib --disable-multilib
(可用的 rpm 包:gcc53-c++-5.3.0-1.el6.x86_64.rpmhttps://drive.google.com/file/d/0B7S255p3kFXNbTBneHgwSzBodFE/view?usp=sharing)