用g ++更改默认的C++标准

Roh*_*mar 8 c++ linux g++ c++11

为了用C++ 11标准编译程序,我们需要做:

 g++ -std=c++11 myProgram.cpp -o myProgramExec
Run Code Online (Sandbox Code Playgroud)

但是我可以将g ++的默认标准设置为C++ 11,这样我就不必一次又一次地提到这个选项虽然我也可以在我的.bashrc中为它添加一个别名:

alias g++='g++ -std=c++11';
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有比这更好的方法.是否有任何g ++的配置文件可以编辑,以实现这一目标?或者有一些更简单的方法来做到这一点?

mer*_*nND 7

经过一些研究(您可能已经自己完成了),g++除了重建自定义版本或别名之外,我还没有找到改变默认行为的方法。


为什么这可能是一件好事

重要的是每个版本g++都有一个明确定义的默认行为。考虑一下:如果您更改了g++一个 C++ 项目的默认行为并尝试编译它的作者无法知道您的配置,则该项目可能无法编译或编译,并出现细微的错误/意外行为。

在您自己的项目中,您可以轻松地将所有相关标志和选项添加到您的Makefileor 中,CMakeLists.txt这样您就无需再次键入它们。这也将确保编译您项目的其他人将收到正确的选项,而不管他们的配置如何。

  • 这并不能回答问题。 (2认同)
  • @jbapple 编辑了我对这个问题的最佳答案(这有点令人失望)。 (2认同)