如何将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最前端,让系统优先调用:
- Clang 16的默认安装路径为
/opt/local/bin/clang++ - 编辑Shell配置文件,添加:
export PATH="/opt/local/bin:$PATH"
之后终端里的clang++会默认调用MacPorts的Clang 16,它本身默认采用C17标准;若需切换到C20,同样可以用CXXFLAGS或别名的方式配置。
注意:不要修改Apple Clang的原始系统配置文件,避免破坏系统工具的依赖编译行为,以上均为安全的用户级配置方案。
内容的提问来源于stack exchange,提问作者Kevin Alvarez
相关产品推荐
相关产品推荐

