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

如何将Apple Clang 15默认编译标准设为C++17/20?

修改Apple Clang默认C++编译标准的方法

方法一:通过环境变量配置默认参数

Clang(包括Apple Clang)会读取CXXFLAGS环境变量作为默认编译参数,按需求设置即可:

临时生效(仅当前终端会话)

在终端执行以下命令,之后g++编译会默认使用C++17标准:

export CXXFLAGS="-std=c++17"

需要C++20的话,把c++17替换为c++20就行。

永久生效(所有终端会话)

根据你使用的Shell类型修改对应配置文件:

  • Bash用户:编辑~/.bash_profile或~/.bashrc,添加上述export命令
  • Zsh用户(MacOS新版本默认Shell):编辑~/.zshrc,添加同样的命令

保存文件后,执行source ~/.zshrc(对应你的配置文件)让设置立即生效,或重启终端。

方法二:给g++创建别名

如果不想影响全局环境变量,可以给g++设置别名,让它默认携带标准参数:

临时生效

alias g++='g++ -std=c++17'

永久生效

编辑你的Shell配置文件(~/.zshrc或~/.bashrc),添加上述别名命令,保存后执行source命令或重启终端即可。

关于MacPorts安装的Clang 16

若想直接用Clang 16作为默认编译器,可将其路径加入PATH最前端,让系统优先调用:

  1. Clang 16的默认安装路径为/opt/local/bin/clang++
  2. 编辑Shell配置文件,添加:
export PATH="/opt/local/bin:$PATH"

之后终端里的clang++会默认调用MacPorts的Clang 16,它本身默认采用C17标准;若需切换到C20,同样可以用CXXFLAGS或别名的方式配置。

注意:不要修改Apple Clang的原始系统配置文件,避免破坏系统工具的依赖编译行为,以上均为安全的用户级配置方案。

内容的提问来源于stack exchange,提问作者Kevin Alvarez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 23:44:52