Ubuntu下如何将Clang默认设置为C++17版本?
解决Clang默认使用C++17标准的问题
你的报错是因为Clang默认采用的C标准版本低于C17,而inline变量是C++17引入的特性,下面是两种解决方式:
一、编译时临时指定C++17标准
在编译命令中添加-std=c++17参数(纯标准C17),或者-std=gnu++17(包含GNU扩展特性的C17),示例命令:
clang++ -std=c++17 your_source.cpp -o output_executable
如果需要临时关闭相关警告,也可以加上-Wno-c++17-extensions,但更推荐直接指定标准来从根源解决问题。
二、永久设置Clang默认使用C++17
如果你想让每次调用clang++都默认使用C++17,可以通过shell别名实现:
- 打开你的shell配置文件,Bash用户编辑
~/.bashrc,Zsh用户编辑~/.zshrc:
nano ~/.bashrc
- 在文件末尾添加以下别名:
alias clang++='clang++ -std=c++17'
如果需要启用GNU扩展特性,就写成:
alias clang++='clang++ -std=gnu++17'
- 保存文件后,执行命令使配置立即生效:
source ~/.bashrc
之后再用clang++编译代码时,就会自动使用C++17标准了。
内容的提问来源于stack exchange,提问作者Cookie
相关产品推荐
相关产品推荐

