You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7安装devtoolset-10后如何将libstdc++-10设为默认C++标准库

CentOS 7 配置devtoolset-10的libstdc++为默认标准库方案

首先明确原因:devtoolset是红帽推出的SCL(软件集合)组件,设计上为了不破坏系统原有依赖,默认不会修改/usr/include、/usr/lib等系统级路径,你看到的/usr/include/c++下仅存在4.8.x版本目录是正常现象,devtoolset-10对应的头文件、库文件都存放在/opt/rh/devtoolset-10/root/目录下,激活环境后编译器会自动检索对应路径。

方案1:当前用户永久生效(无系统风险,优先推荐)

该方案仅影响当前登录用户,不会修改系统全局配置,避免干扰依赖旧版GCC的系统组件运行:

  • 编辑当前用户的bash配置文件:vim ~/.bashrc
  • 在文件末尾添加激活脚本:
    source /opt/rh/devtoolset-10/enable
    
  • 保存退出后执行source ~/.bashrc即可立即生效,后续当前用户所有新启动的shell会话都会默认加载devtoolset-10环境,编译C代码时会自动使用libstdc-10的头文件和库文件。

方案2:系统全局生效(所有用户默认使用,存在兼容性风险)

警告:CentOS 7系统大量基础组件依赖GCC 4.8.5版本的libstdc++,修改全局默认可能导致部分系统工具、第三方RPM包运行异常,请谨慎操作。

  • 创建全局激活脚本:vim /etc/profile.d/devtoolset-10.sh
  • 写入如下内容:
    #!/bin/bash
    source /opt/rh/devtoolset-10/enable
    
  • 给脚本添加可执行权限:chmod +x /etc/profile.d/devtoolset-10.sh
  • 执行source /etc/profile.d/devtoolset-10.sh立即生效,后续所有用户登录系统都会默认加载devtoolset-10环境。

可选操作:手动添加头文件软链接

如果需要在未激活devtoolset环境的场景下也能检索到libstdc++-10的头文件,可以手动创建软链接到系统头文件目录:

ln -s /opt/rh/devtoolset-10/root/usr/include/c++/10 /usr/include/c++/10

注意:该操作仅添加头文件检索路径,程序运行时仍需要加载devtoolset-10提供的libstdc++.so.10动态库,否则会出现版本不兼容报错。

内容的提问来源于stack exchange,提问作者Eric Niebler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:48:03