Centos7升级gcc

Centos7升级gcc gcc4.85 – gcc9.4

参考:https://blog.youkuaiyun.com/xiyou__/article/details/120717986

创建所需目录

mkdir -p /usr/local/gcc-9.4
mkdir -p /usr/local/gcc-9.4/pkg
mkdir -p /usr/local/gcc-9.4/pkg/gcc
mkdir -p /usr/local/gcc-9.4/pkg/gmp
mkdir -p /usr/local/gcc-9.4/pkg/m4
mkdir -p /usr/local/gcc-9.4/pkg/mpc
mkdir -p /usr/local/gcc-9.4/pkg/mpfr
mkdir -p /usr/local/gcc-9.4/pkg/isl

需要依赖文件

根据gcc解压之后的 contrib/download_prerequisites 文件中配置去下载安装相应的依赖
不同版本gcc下载地址:https://gcc.gnu.org/pub/gcc/releases/
[root@localhost gcc-9.4.0]# cat contrib/download_prerequisites |grep -E "gmp=|mpfr=|mpc=|isl="
gmp='gmp-6.1.0.tar.bz2'
mpfr='mpfr-3.1.4.tar.bz2'
mpc='mpc-1.0.3.tar.gz'
isl='isl-0.18.tar.bz2'

依赖文件下载地址:https://gcc.gnu.org/pub/gcc/infrastructure/
需要gmp mpfr mpc isl,因为安装gmp的时候遇到需要m4,这里先安装了m4.如果本地有m4命令。可以忽略 或者后续如果版本需要升级之类的可以参考第一步

1、先装m4

cd /usr/local/gcc-9.4
tar -xf m4-1.4.16.tar.bz2
cd m4-1.4.16
mkdir build
#这一步是因为编译的时候报错[gets xxx的字样 具体报错不记得了]。可以按照下一步删除文件中的这一行。
#sed -i -e '/gets is a security/ d' ./lib/stdio.in.h
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/m4
make 
make install


###报错修改lib/
##sed -i -e '/gets is a security/d' ./stdio.in.h

安装完之后可能找不到m4 手动ln 一下
ln -s /usr/local/gcc-9.4/pkg/m4/bin/m4 /usr/bin/

2、安装gmp

cd /usr/local/gcc-9.4
tar -xf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/gmp
make
make install

3、安装mpfr

cd /usr/local/gcc-9.4
tar -xf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/mpfr --with-gmp=/usr/local/gcc-9.4/pkg/gmp
make
make install

4、安装mpc

cd /usr/local/gcc-9.4
tar -xf mpc-1.0.3.tar.gz
cd mpc-1.0.3
mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/mpc --with-gmp=/usr/local/gcc-9.4/pkg/gmp --with-mpfr=/usr/local/gcc-9.4/pkg/mpfr
make
make install

5、安装isl

cd /usr/local/gcc-9.4
tar -xf isl-0.18.tar.bz2
cd isl-0.18
mkdir build
cd build
../configure  --prefix=/usr/local/gcc-9.4/pkg/isl --with-gmp-prefix=/usr/local/gcc-9.4/pkg/gmp
make 
make install

6、配置相关依赖库

export LD_LIBRARY_PATH=/usr/local/gcc-9.4/pkg/gmp/lib:/usr/local/gcc-9.4/pkg/mpfr/lib:/usr/local/gcc-9.4/pkg/mpc/lib:/usr/local/gcc-9.4/pkg/isl/lib:$LD_LIBRARY_PATH

7、安装gcc

cd /usr/local/gcc-9.4
tar -xf gcc-9.4.0.tar.gz
cd gcc-9.4.0
mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.4/pkg/gcc --enable-threads=posix --disable-checking --disable-multilib --enable--long-long --enable-languages=c,c++ --with-gmp=/usr/local/gcc-9.4/pkg/gmp --with-mpfr=/usr/local/gcc-9.4/pkg/mpfr --with-mpc=/usr/local/gcc-9.4/pkg/mpc
make
make install
#上面make的时候超级慢 而且特别吃资源,我测试环境2核2G内存的机器直接卡死。 后面提升到4核4G内存才成功,还是很慢。

#
#下面这个忽略
##../configure --prefix=/usr/local/gcc-9.4/gcc --enable-threads=posix --disable-checking --enable--long-long --enable-languages=c,c++ 

8、替换新的gcc

which gcc
cd /usr/bin/
mv gcc gcc_4.8
mv g++ g++_4.8

ln -s /usr/local/gcc-9.4/gcc/bin/gcc /usr/bin/
ln -s /usr/local/gcc-9.4/gcc/bin/g++ /usr/bin/
### 升级 GCC 的方法 在 CentOS 7 上默认安装的 GCC 版本可能较低,为了满足开发需求或兼容某些软件包的要求,有时需要升级到更高版本的 GCC。以下是详细的步骤说明: #### 使用 Devtoolset 安装高版本 GCC DevToolset 是 Red Hat 提供的一套工具集,允许开发者在同一台机器上拥有多个编译器版本并轻松切换。 1. 配置额外仓库以便获取最新版 GCC 工具链: ```bash sudo yum install centos-release-scl ``` 2. 安装所需的具体版本的 devtoolset (这里以 devtoolset-9为例): ```bash sudo yum install devtoolset-9 ``` 3. 启用新安装的 toolset 并验证其是否生效: ```bash scl enable devtoolset-9 bash gcc --version ``` 通过上述命令启用后,在当前 shell 中使用的将是来自 devtoolset-9 的 GCC 编译器及其关联库文件[^1]。 #### 手动编译安装 GCC 如果希望永久替换系统的默认 GCC 或者需要特定配置选项,则可以选择手动下载源码进行编译安装: 1. 下载目标版本的 GCC 源代码压缩包; 2. 解压 tarball 文件并将解压后的目录作为工作区; 3. 创建一个新的构建目录用于放置生成的目标文件而不是污染原始源树; 4. 进入创建好的 build 目录执行如下配置脚本(假设要安装至 `/usr/local/gcc` 路径下),注意调整 `--prefix` 参数指向期望位置: ```bash ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --prefix=/usr/local/gcc ``` 5. 开始编译过程,这一步可能会花费较长时间取决于计算机性能; ```bash make -j$(nproc) ``` 6. 将编译完成的结果复制到指定路径内: ```bash sudo make install ``` 7. 更新环境变量 PATH 来优先选用新的 GCC 可执行程序: ```bash export PATH="/usr/local/gcc/bin:$PATH" ``` 8. 添加以上导出语句到 `.bashrc` 或其他启动脚本中实现持久化设置. 请注意这种方式会覆盖系统自带的基础组件,因此建议仅当确实有必要时才采取此方案,并确保了解潜在风险以及具备解决问题的能力[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值