阅读量:2
CentOS C++配置中选择编译器版本的方法
1. 使用系统包管理器直接安装多版本GCC
CentOS的yum(CentOS 7及以下)或dnf(CentOS 8及以上)包管理器可安装多个GCC版本。例如,安装GCC 7和GCC 8及其对应的C++编译器(G++):
# CentOS 7
sudo yum install gcc-7 gcc-c++-7 gcc-8 gcc-c++-8
# CentOS 8及以上
sudo dnf install gcc-7 gcc-c++-7 gcc-8 gcc-c++-8
安装完成后,通过gcc --version和g++ --version可查看系统默认版本。
2. 用update-alternatives管理多版本切换
update-alternatives是CentOS自带的工具,可配置默认编译器版本。以GCC为例,配置步骤如下:
# 注册GCC 7和GCC 8到alternatives系统
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 --slave /usr/bin/g++ g++ /usr/bin/g++-8
# 切换默认版本(交互式选择)
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
执行后会显示版本列表,输入对应编号即可切换。切换后通过gcc --version验证。
3. 使用Devtoolset(推荐:官方支持的版本集合)
Devtoolset是CentOS提供的工具集,包含较新的GCC版本及开发工具(如GDB、make),适合需要兼容旧系统但使用新编译器的场景。
- 安装Devtoolset:以Devtoolset 9为例,需先启用SCL(Software Collections)仓库,再安装:
sudo yum install centos-release-scl # 启用SCL仓库 sudo yum install devtoolset-9-gcc* # 安装Devtoolset 9 - 临时启用:通过
scl enable命令启动新shell会话,仅当前终端生效:scl enable devtoolset-9 bash - 永久生效:将以下命令添加到
~/.bashrc文件,每次登录自动加载:source scl_source enable devtoolset-9 - 验证版本:启用后运行
g++ --version,显示的版本即为Devtoolset提供的版本。
4. 手动编译安装GCC源码(完全自定义版本)
若需要特定版本(如GCC 11)或最新版本,可手动下载源码编译安装:
# 安装依赖库
sudo yum install gmp-devel mpfr-devel libmpc-devel
# 下载并解压GCC源码(以11.2.0为例)
wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz
tar -xf gcc-11.2.0.tar.gz
cd gcc-11.2.0
mkdir -p build && cd build
# 配置并编译(--prefix指定安装路径)
../configure --prefix=/usr/local/gcc-11.2.0 --enable-languages=c,c++
make -j$(nproc) # 多线程编译,加快进度
sudo make install
# 配置环境变量(添加到~/.bashrc)
echo 'export PATH=/usr/local/gcc-11.2.0/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# 验证版本
g++ --version
此方法需较长时间编译,但能获得完全自定义的编译器版本。
5. 使用版本管理工具(多版本灵活切换)
- asdf:通用版本管理工具,支持GCC等多语言版本。
# 安装asdf git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.1 echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc source ~/.bashrc # 安装asdf-gcc插件 asdf plugin-add gcc # 安装指定GCC版本 asdf install gcc 11.2.0 asdf install gcc 9.4.0 # 设置全局/局部版本 asdf global gcc 11.2.0 # 全局默认 asdf local gcc 9.4.0 # 当前目录生效 - Docker:通过容器隔离不同编译器版本,避免污染主机环境。
容器内可使用系统默认的GCC版本,或通过上述方法安装其他版本。# 创建Dockerfile FROM centos:7 RUN yum update -y && yum install -y gcc gcc-c++ && yum clean all CMD ["/bin/bash"] # 构建并运行容器 docker build -t centos-gcc . docker run -it centos-gcc
以上就是关于“CentOS C++配置时如何选择编译器版本”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm