- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。
在 CentOS 系统中,很多软件开发和构建任务依赖于 GCC(GNU Compiler Collection)。默认安装的 GCC 版本可能较低,不满足项目需求,因此我们需要升级 GCC。本指南将为你详细讲解如何通过包管理器或源码编译升级 GCC,以及如何解决常见问题。
一、检查当前环境
1. 查看当前 GCC 版本
gcc --version
2. 查看 GCC 安装路径
which gcc
3. 查看 CentOS 版本
cat /etc/redhat-release
二、通过包管理器升级 GCC
如果你需要快速升级,可以使用 CentOS 的 SCL(Software Collections)或 Devtoolset。
1. 启用 Devtoolset
yum install centos-release-scl -y
yum install devtoolset-11-gcc devtoolset-11-gcc-c++ -y
2. 临时启用新版 GCC
scl enable devtoolset-11 bash
3. 永久启用新版 GCC
将以下内容添加到 ~/.bashrc 文件中:
source /opt/rh/devtoolset-11/enable
三、从源码编译安装 GCC
如果需要最新版本的 GCC,推荐从源码安装。以下是完整步骤。
1. 下载源码包
访问 GCC 官方下载页面,选择适合的版本。例如,下载 GCC 11.4:
wget http://www.landui.com/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz
2. 解压源码并切换目录
tar -zxvf gcc-11.4.0.tar.gzcd gcc-11.4.0
3. 安装依赖项
yum install -y glibc-headers gcc-c++ gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel libffi-devel
4. 下载和准备依赖库
./contrib/download_prerequisites
5. 配置依赖库并安装
进入依赖库目录,依次安装:
cd mpfr-3.1.6
./configure --prefix=/usr/local/mpfr-3.1.6
make
make install
cd ../mpc-1.0.3
./configure --prefix=/usr/local/mpc-1.0.3
make
make install
cd ../gmp-6.1.0
./configure --prefix=/usr/local/gmp-6.1.0
make
make install
cd ../isl-0.18
./configure --prefix=/usr/local/isl-0.18
make
make install
6. 配置 GCC 编译参数
创建构建目录并配置:
mkdir buildcd build
../configure --prefix=/usr/local/gcc-11.4.0 \\\\
--with-gmp=/usr/local/gmp-6.1.0 \\\\
--with-mpfr=/usr/local/mpfr-3.1.6 \\\\
--with-mpc=/usr/local/mpc-1.0.3 \\\\
--with-isl=/usr/local/isl-0.18 \\\\
--with-system-zlib \\\\
--disable-multilib
7. 编译和安装
make -j$(nproc) # 使用多线程编译
make install
四、配置新版本 GCC
1. 更新环境变量
编辑 ~/.bashrc 文件,添加:
export PATH=/usr/local/gcc-11.4.0/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/gcc-11.4.0/lib64:$LD_LIBRARY_PATH
执行以下命令生效:
source ~/.bashrc
2. 更新软链接
确保系统使用新版 GCC,更新软链接:
mv /usr/bin/gcc /usr/bin/gcc.bakln -s /usr/local/gcc-11.4.0/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++.bakln -s /usr/local/gcc-11.4.0/bin/g++ /usr/bin/g++
mv /usr/bin/c++ /usr/bin/c++.bakln -s /usr/local/gcc-11.4.0/bin/c++ /usr/bin/c++
3. 更新动态链接库
如果需要新版本的 libstdc++,执行以下操作:
cp /usr/local/gcc-11.4.0/lib64/libstdc++.so.6.0.29 /usr/lib64/mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bakln -s /usr/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6
五、验证安装结果
测试 GCC 版本是否更新:
gcc --version
蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。
更多技术知识,蓝队云期待与你一起探索。
售前咨询
售后咨询
备案咨询
二维码
TOP