centos升级gcc到6.3.0——源码编译安装GMP,MPFR,MPC和GCC

阿里云的centos系统自带的gcc版本为4.8.5,可以通过gcc -v命令查看

[root@wcz gcc-6.3.0]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)

1、如果直接下载gcc6.3.0进行安装升级的话,会报错

configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.

接下来我们需要以此安装gmp,mpfr,mpc,这三个组件的顺序不能乱,因为后面的依次依赖前面

 

2、安装相关依赖

yum install "gmp-devel.x86_64"

yum install gcc-c++

yum install m4

 

3、安装gmp

wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz

xz -d gmp-6.1.2.tar.xz

tar xvf gmp-6.1.2.tar

cd gmp-6.1.2

./configure --prefix=/usr/local/gmp

make  && make install

 

4、安装MPFR

wget https://www.mpfr.org/mpfr-current/mpfr-4.0.2.tar.gz

tar -zxvf mpfr-4.0.2.tar.gz

cd mpfr-4.0.2

在该行代码下面

#define MPFR_VERSION_STRING "4.0.2"

添加代码

#define mpfr_add_one_ulp(x,r) \

(mpfr_sgn (x) > 0 ? mpfr_nextabove (x) : mpfr_nextbelow (x))

#define mpfr_sub_one_ulp(x,r) \

(mpfr_sgn (x) > 0 ? mpfr_nextbelow (x) : mpfr_nextabove (x))

然后执行

./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp

make  && make install

 

 

5、安装mpc

wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz

tar -zxvf mpc-1.0.3.tar.gz

cd mpc-1.0.3

./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr

make  && make install

 

如果报错:mul.c:175:1: error: conflicting types for ‘mpfr_fmma’

则将 mpc/src/mul.c中的 mpfr_fmma函数改名为mpfr_fmma_mul,一共三处

 

 

6、升级gcc

wget ftp://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.gz

tar -zxvf gcc-6.3.0.tar.gz

cd gcc-6.3.0

./configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc

make && make install

 

如果几分钟后出现报错:

cannot compute suffix of object files: cannot compile

 

解决方法如下:

vi /etc/profile

添加

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib

source /etc/profile

重新编译安装即可

 

7、创建软链接

[root@wcz cpp]# ln -sf /usr/local/gcc/bin/gcc /usr/bin/gcc

[root@wcz cpp]# ln -sf /usr/local/gcc/bin/c++ /usr/bin/c++

[root@wcz cpp]# ln -sf /usr/local/gcc/bin/g++ /usr/bin/g++

[root@wcz cpp]# ln -sf /usr/local/gcc/lib64/libstdc++.so.6.0.22 /usr/lib64/libstdc++.so.6

 

8、验证

[root@wcz cpp]# gcc -v

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/local/gcc/libexec/gcc/x86_64-pc-linux-gnu/6.3.0/lto-wrapper

Target: x86_64-pc-linux-gnu

Configured with: ./configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc

Thread model: posix

gcc version 6.3.0 (GCC)

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
源码编译安装GCC可以通过以下步骤进行: 1. 安装依赖库: - 执行命令:`yum install -y epel-release` 安装EPEL源; - 执行命令:`yum install -y vim wget gcc gcc-c make autoconf automake zip bzip2` 安装基础编译软件; - 执行命令:`yum install -y gcc-gnat libgcc libgcc.i686 glibc-devel bison flex m4 texinfo build-essential` 安装其他依赖软件。 2. 下载并解压GCC源码: - 执行命令:`wget -P '/usr/local/src' https://ftp.gnu.org/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.gz` 下载GCC源码; - 执行命令:`cd /usr/local/src` 进入下载目录; - 执行命令:`tar -zxvf gcc-10.3.0.tar.gz -C '/usr/local/src'` 解压GCC源码; - 执行命令:`cd gcc-10.3.0` 进入解压后的源码目录。 3. 设置环境变量: - 执行命令:`echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64' >> /etc/profile` 将依赖库路径添加到环境变量中; - 执行命令:`source /etc/profile` 使环境变量立即生效; - 执行命令:`vim /etc/ld.so.conf` 编辑ld.so.conf文件,将GCC依赖的动态链接库路径添加到文件中。 4. 编译安装GCC: - 执行命令:`./configure --prefix=/usr/local/gcc-10.3.0` 配置GCC安装路径; - 执行命令:`make -j$(nproc)` 编译GCC,耗时较长,请保证有足够的时间; - 执行命令:`make install` 安装GCC。 5. 配置GCC的默认版本(可选): - 执行命令:`ln -s /usr/local/gcc-10.3.0/bin/gcc /usr/local/bin/gcc` 创建软链接,将GCC的可执行文件路径添加到系统的PATH环境变量中。 请注意,源码编译安装GCC是一个耗时的过程,根据您的机器性能和网络状况,可能需要几个小时甚至更长时间才能完成编译。确保您有足够的时间和资源来完成这个过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值