如何使g ++ -std = c ++ 14成为默认选项

时间:2018-01-24 19:37:28

标签: c++ linux g++ mint

我一直在使用ubuntu这么长时间,而且在我决定切换到linux mint前几天。在ubuntu上,我在编译为c++14标准编写的c ++源代码时从未遇到任何问题。但在mint上,默认标准为c++98。我尝试按如下方式创建别名:

alias g++="g++ -std=c++14

它适用于我手动编译的小程序。但是,这不是使用Makefiles自动构建软件的解决方案,因此我想告诉g ++使用c++14作为默认ISO。谢谢你的帮助

我想要这个,更具体地说,我想做一些像:

std::vector<int> numbers = {1, 2, 3, 4, 5};

2 个答案:

答案 0 :(得分:2)

在您的.rc脚本之一中设置环境变量:

export CXXFLAGS = "$CXXFLAGS -std=c++14"

应该影响对make的所有调用,除非再次在Makefile中明确设置变量。

另一种选择是提供config.mak文件,您可以在Makefile中添加:

Makefile

include config.mak

# ... rules and actions

config.mak

CXXFLAGS += "-std=c++14"

答案 1 :(得分:0)

这不是Linux发行版上的编译器和软件分发如何工作的。

有很多构建系统,包括计划Makefile,Autotools,scons,CMake,qmake,waf,Bazel,Buck,Mezon ......你可以这么说。这些中的每一个都有一个关于如何指定编译器及其选项的独特方法。

编译器的默认设置也会影响行为,并且这些默认值在每个编译器的版本中都不同。

此外,作为用户或“仅仅”编译由其他人编写的软件的人,您不应该在一般情况下凌驾于作者关于语言标准的想法。这样做有潜在危险。

但是,如果这是关于您自己的软件和您的方便,那么我的建议是使用一个真正的构建系统,它允许您从一个位置全局指定编译器选项语言标准。您还设置了其他非默认标志,例如-Wall,不是吗?