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

Ubuntu系统下如何将默认C++标准库从std=c++14切换为std=c++17

操作方案

你可以根据自己的需求选择以下任意一种方案实现:

方案1:切换更高版本的gcc/g++为系统默认编译器

gcc 11及以上版本的默认C标准为C17,你可以先安装对应版本再设置为默认,操作步骤如下:

  • 安装gcc-11、g++-11(如果不想用11版本,也可以继续用gcc-10,搭配方案2的参数配置)
sudo apt update
sudo apt install gcc-11 g++-11
  • 添加编译器可选配置
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 110

末尾的数值为优先级,数值越高优先级越高,保证高于你当前默认的旧版本编译器优先级即可。

  • 如需手动切换版本,可执行以下命令按提示选择对应版本编号:
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

配置完成后,执行你之前的查询命令man g++ | grep "This is the default for C++ code"即可看到默认标准已经切换为C++17。

方案2:不修改默认编译器,设置全局编译参数

如果你不想改动系统默认的编译器版本,可以添加全局编译参数,让所有编译工具默认启用C++17标准:

  • 临时生效(仅当前终端窗口有效):
export CXXFLAGS="$CXXFLAGS -std=c++17"
  • 永久生效:
    打开你当前使用的shell配置文件,bash用户编辑~/.bashrc,zsh用户编辑~/.zshrc,在文件末尾添加一行:
export CXXFLAGS="$CXXFLAGS -std=c++17"

保存后执行source ~/.bashrc(zsh用户执行source ~/.zshrc)即可生效。

注:两种方案都不需要手动修改系统默认的C++标准库版本,编译软件包时工具会自动匹配对应标准的标准库链接,完全满足依赖要求。

内容的提问来源于stack exchange,提问作者Mohammad Mohammadidoust

相关产品推荐
方舟 Agent Plan

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

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