CentOS下C++版本如何选择与安装
导读:CentOS下C++版本选择与安装 一 版本选择建议 明确目标标准与特性:若只需 C++11/14,系统自带或 SCL 的较新 GCC 即可;若需 C++17/20/23,建议选择 GCC 9+(C++17 起完整支持),更高特性可考虑...
CentOS下C++版本选择与安装
一 版本选择建议
- 明确目标标准与特性:若只需 C++11/14,系统自带或 SCL 的较新 GCC 即可;若需 C++17/20/23,建议选择 GCC 9+(C++17 起完整支持),更高特性可考虑 GCC 11+。
- 兼顾稳定性与可维护性:生产环境优先使用 SCL(devtoolset) 或系统仓库版本,避免直接替换系统默认编译器;需要多版本并存时用 update-alternatives 或容器化隔离。
- 与系统版本匹配:CentOS 7 默认 GCC 4.8.5;CentOS 8 默认 GCC 9.3.1;若系统仓库版本不足,使用 SCL 或源码编译升级。
二 安装与启用步骤
- 基础工具与默认编译器
- 更新并安装基础开发组与编译器:
sudo yum update -y
sudo yum groupinstall -y “Development Tools”
sudo yum install -y gcc gcc-c++ - 验证:gcc --version、g++ --version。
- 更新并安装基础开发组与编译器:
- SCL 安装较新 GCC(推荐,不替换系统默认)
- 安装 SCL 源并启用所需版本(示例为 devtoolset-10,可按需选择 9/10/11 等):
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-10-gcc devtoolset-10-gcc-c++ - 临时启用:scl enable devtoolset-10 bash(当前会话生效)。
- 永久启用(登录即生效):echo “source /opt/rh/devtoolset-10/enable” > > ~/.bashrc 或 /etc/profile。
- 安装 SCL 源并启用所需版本(示例为 devtoolset-10,可按需选择 9/10/11 等):
- 多版本切换(update-alternatives)
- 安装多个版本后注册到 alternatives(示例为 gcc-8/g+±8 与 gcc-10/g+±10):
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 --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g+±10 - 交互切换:sudo update-alternatives --config gcc(g++ 会随 gcc 联动)。
- 安装多个版本后注册到 alternatives(示例为 gcc-8/g+±8 与 gcc-10/g+±10):
- 源码编译安装特定版本(可选)
- 适合需要精确版本或新特性:安装依赖(gmp/mpfr/libmpc 等),下载解压 GCC 源码,执行 contrib/download_prerequisites,配置(–prefix、–enable-languages=c,c++、–disable-multilib),make -jN,sudo make install,并将 bin 加入 PATH。
三 验证与常用命令
- 查看编译器与标准库
- 编译器版本:gcc --version、g++ --version;若安装 Clang:clang++ --version。
- C++ 标准库符号版本:strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX(检查 libstdc++ 支持的符号集)。
- 编译与运行测试
- 示例:g++ -std=c++17 -O2 hello.cpp -o hello & & ./hello(按项目需求调整 -std 与优化级别)。
四 场景化推荐
- 快速上手与兼容性优先:安装 Development Tools 与 gcc-c++,满足日常开发与多数 C++11/14 项目。
- 需要 C++17/20 或更高:使用 SCL 的 devtoolset-9/10/11,通过 scl enable 临时启用或在登录时自动启用,避免影响系统默认环境。
- 多项目多版本并存:用 update-alternatives 注册多个 GCC/G++,按需切换;或采用 Docker 为每个项目提供独立的编译器与依赖环境。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS下C++版本如何选择与安装
本文地址: https://pptw.com/jishu/754572.html
