CentOS7离线安装GCC9.3.0(亲测)

目录

前言

安装文件下载

离线安装

安装GMP

安装MPFR

安装MPC

安装ISL-0.24

安装GCC-9.3.0

配置环境变量

更新动态库

参考资料


前言

       安装CentOS7后,系统会默认安装GCC4.8.5(可执行文件位于 /usr/bin 目录,头文件位于 /usr/include 目录,库文件位于 /usr/lib 目录)。但有些C/C++源代码需要较高版本编译器才能编译,且服务器还在公司内网,不能在线升级编译器。本文主要介绍如何在不删除原编译器的条件下,离线安装GCC9.3.0。

安装文件下载

       GCC依赖四个库:GMP、MPFR、MPC、ISL。GMP:计算任意精度的数学库, 包括支持整数,有理数和浮点。MPFR: 一个多精度高效的浮点计算C语言库, 基于GMP。MPC:一个支持高精度复数的算术运算的C库,并能正确的进行结果舍入。ISL:用于操作集合和线性约束下的整数点的关系的库,支持集合的交,并和补操作。

      其中,MPFR依赖GMP,MPC依赖GMP和MPFR,GCC依赖上面四个库,所以推荐的编译安装顺序是GMP->MPFR->MPC->ISL->GCC。

      我们选择下载如下版本,且给出了下载地址:

离线安装

安装GMP

        将下载的gmp-6.2.1.tar.xz解压缩到/home目录(/home/gmp-6.2.1),为了便于后续管理,新建 /usr/local/gmp-6.2.1 目录,并将gmp库安装于此目录,安装指令如下:

cd /home/gmp-6.2.1

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

make  -j8

make  install  -j8

安装MPFR

        将下载的mpfr-4.2.0.tar.xz解压缩到/home目录(/home/mpfr-4.2.0),新建 /usr/local/mpfr-4.2.0 目录,并将mpfr库安装于此目录,安装指令如下:

cd /home/mpfr-4.2.0

./configure --prefix=/usr/local/mpfr-4.2.0 --with-gmp-include=/usr/local/gmp-6.2.1/include --with-gmp-lib=/usr/local/gmp-6.2.1/lib

make  -j8

make  install  -j8

        由于MPFR库依赖GMP库,因此需要–with命令指定GMP库的头文件目录和库文件目录。

安装MPC

        将下载的mpc-1.3.1.tar.xz解压缩到/home目录(/home/mpc-1.3.1),新建 /usr/local/mpc-1.3.1 目录,并将mpc库安装于此目录,安装指令如下:

cd /home/mpc-1.3.1

./configure --prefix=/usr/local/mpc-1.3.1 --with-gmp-include=/usr/local/gmp-6.2.1/include --with-gmp-lib=/usr/local/gmp-6.2.1/lib  --with-mpfr-include=/usr/local/mpfr-4.2.0/include --with-mpfr-lib=/usr/local/mpfr-4.2.0/lib

make  -j8

make  install  -j8

        由于MPC库依赖GMP库和MPFR库,因此需要–with命令指定GMP库和MPFR库的头文件目录和库文件目录。

安装ISL-0.24

        将下载的isl-0.24.tar.bz2解压缩到/home目录(/home/isl-0.24),新建 /usr/local/isl-0.24 目录,并将isl库安装于此目录,安装指令如下:

cd /home/isl-0.24.

./configure --prefix=/usr/local/isl-0.24  --with-gmp-prefix=/usr/local/gmp-6.2.1

make  -j8

make  install  -j8

安装GCC-9.3.0

        安装gcc之前,需将前面安装的依赖库路径配置到环境变量中,否则会提示找不到相关依赖库。

export LD_LIBRARY_PATH=/usr/local/gmp-6.2.1/lib:/usr/local/mpfr-4.2.0/lib:/usr/local/mpc-1.3.1/lib:/usr/local/isl-0.24/lib:$LD_LIBRARY_PATH

       将下载的gcc-9.3.0.tar.xz解压缩到/home目录(/home/gcc-9.3.0),新建 /usr/local/gcc-9.3.0 目录,并将gcc库安装于此目录,安装指令如下:

--enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3

cd /home/gcc-9.3.0

./configure --prefix=/usr/local/gcc-9.3.0 --with-gmp=/usr/local/gmp-6.2.1/  --with-mpfr=/usr/local/mpfr-4.2.0  --with-mpc=/usr/local/mpc-1.3.1 --with-isl=/usr/local/isl-0.24 --disable-multilib

make  -j8

make  install  -j8

在configure环节,不同系统可能会报错,根据提示增加编译选项即可。

配置环境变量

        在文件/etc/profile中最后添加一行,内容如下:

export PATH=/usr/local/gcc-9.3.0/bin:$PATH

        使其立即生效:

source /etc/profile

更新动态库

        不更新动态库,会导致编译成功的新程序,运行时报错。

原因是因为升级GCC后相应的动态库没有更新,导致新编译器编译程序成功,运行不成功。

  • 使用如下命令,你会发现当前库是一个软链接

ls -l /usr/lib64/libstdc++.so.6

  • 使用如下命令,查看动态库,你会发现版本太低

strings /usr/lib64/libstdc++.so.6.0.19 | grep CXXABI

  • 更新gcc-9.3.0安装目录下的相应动态库到/usr/lib64目录下。

        先删除/usr/lib64/libstdc++.so.6,再重新创建软链接:

ln -s /usr/local/gcc-9.3.0/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6

        更新gcc、g++链接。首先备份gcc4.8.5,如下:

mv /usr/bin/gcc /usr/bin/gcc-4.8.5

mv /usr/bin/g++ /usr/bin/g++-4.8.5

        创建gcc-9.3.0链接,如下:

ln -s /usr/local/gcc-9.3.0/bin/gcc /usr/bin/gcc

ln -s /usr/local/gcc-9.3.0/bin/g++ /usr/bin/g++

         至此,gcc-9.3.0安装完成。使用如下命令查看版本:

gcc  -v

参考资料

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS 7上离线安装GCC 9.3.0,你可以按照以下步骤进行操作: 1. 在另一台连接到Internet的计算机上下载GCC源代码的tar包和所有依赖项的源代码tar包。你可以从GCC官方网站上找到它们的下载链接。 2. 将下载的所有tar包复制到CentOS 7的目标机器上。你可以使用USB驱动器、外部硬盘或通过本地网络传输文件将它们传输到CentOS 7上。 3. 在CentOS 7上创建一个新的目录,用于提取GCC源代码和依赖项的源代码。你可以选择一个方便的位置,比如/home/your_username/gcc。 4. 在该目录下依次解压GCC源代码和每个依赖项的源代码。使用以下命令解压.tar包: ``` tar -xf gcc-9.3.0.tar.gz tar -xf dependency1.tar.gz tar -xf dependency2.tar.gz ... ``` 5. 安装依赖项。在解压每个依赖项的源代码后,切换到该目录并按照各自的README文件或安装说明进行编译和安装。 6. 配置GCC。在解压GCC源代码后,进入其目录,运行以下命令: ``` ./configure ``` 这将配置GCC以在CentOS 7上进行安装。 7. 编译和安装GCC。运行以下命令编译和安装GCC: ``` make make install ``` 此过程可能需要一些时间,具体取决于你的机器性能和GCC版本的大小。 8. 完成后,你可以通过运行以下命令检查GCC版本: ``` gcc --version ``` 如果显示GCC 9.3.0的版本信息,则说明你已成功离线安装GCC。 请注意,在离线安装GCC时,你可能会遇到某些依赖项的问题,比如缺少其他库或工具。要解决这些问题,你可能需要在目标机器上手动安装所需的依赖项,然后重新运行编译和安装步骤。 希望这些步骤能帮助你在CentOS 7上成功离线安装GCC 9.3.0。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值