中标麒麟系统需升级GCC至8.5.0以支持C++17标准;先确认系统ID及当前gcc版本(通常为4.8.5),若不满足则通过源码编译安装:下载gcc-8.5.0、自动获取依赖、配置--prefix=/usr/local/gcc-8.5.0、make -j$(nproc)编译、sudo make install,最后将新路径加入PATH并source生效,验证gcc --version输出8.5.0。

中标麒麟系统默认GCC版本老旧,无法支持C++17等新标准,必须安装新版GCC才能编译现代C/C++项目。
确认系统基础信息
执行 cat /etc/os-release 查看ID字段,中标麒麟常见ID为 bclinux、kylin 或 euleros;再运行 gcc --version 记下当前版本(通常是4.8.5),这是后续判断是否需升级的关键依据。
若输出显示 command not found,说明连基础编译器都未安装,必须先用yum/dnf装好依赖再走源码路径。
方法一:直接使用包管理器安装(适用于有网络且镜像源完整)
执行 sudo yum install gcc gcc-c++ gmp-devel mpfr-devel libmpc-devel make bzip2 wget。
这一步会拉取系统仓库中可用的最高版本GCC(如Kylin V7U6默认提供GCC 4.8.5,部分更新源可能含GCC 7.3.0)。装完后运行 gcc --version 验证。
注意:该方式无法获得GCC 8.5+或更高版本,若项目明确要求C++17完整支持,请跳过此方法,进入源码编译流程。
方法二:源码编译安装GCC 8.5.0(推荐用于C++17项目)
第一步:创建专用工作目录并进入
mkdir -p ~/gcc-src && cd ~/gcc-src
第二步:下载GCC 8.5.0源码包
wget https://ftp.gnu.org/gnu/gcc/gcc-8.5.0/gcc-8.5.0.tar.gz
第三步:解压并进入源码根目录
tar -zxvf gcc-8.5.0.tar.gz && cd gcc-8.5.0
第四步:自动下载并安装GMP/MPFR/MPC依赖
./contrib/download_prerequisites
这步会从GNU官方基础设施服务器拉取对应版本的gmp-6.1.2、mpfr-4.0.2、mpc-1.10,并解压到当前目录同级。若提示wget失败,请检查网络连通性或手动下载后放入gcc-8.5.0目录再重试。
第五步:配置编译参数
./configure --prefix=/usr/local/gcc-8.5.0 --enable-bootstrap --disable-multilib --with-system-zlib
--prefix 指定安装路径,避免覆盖系统原有GCC;--disable-multilib 禁用32位支持(x86_64环境常用),节省编译时间与磁盘空间;--with-system-zlib 复用系统zlib库,防止链接错误。
第六步:开始编译
make -j$(nproc)
使用全部CPU核心加速编译。若内存小于4GB,建议改用 -j2 防止OOM Killer杀进程。
第七步:安装到目标目录
sudo make install
配置新GCC为默认编译器
执行 echo 'export PATH="/usr/local/gcc-8.5.0/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc。
这行命令把新GCC的bin目录加到PATH最前面,确保终端输入gcc时优先调用它。不要漏掉 source ~/.bashrc,否则当前会话仍用旧版本。
验证是否生效:which gcc 应返回 /usr/local/gcc-8.5.0/bin/gcc;再运行 gcc --version 和 g++ --version,确认输出为8.5.0。











