如何在 g++ 中将 -std=c++11 定义为默认值
how to define -std=c++11 as default in g++
我在我的 C++ 程序中使用了我需要的一些特性 -std=c++11
在 g++ 中设置的选项
是否可以将此选项设置为默认选项,而不必在我编译时一直使用它?
或者如何在 Makefile 中设置它。
是的,您通常在 Makefile 中进行设置:
CXXFLAGS=-std=c++11
您还可以通过 autoconf
、cmake
或您可能部署的任何其他元构建工具检测合适的编译器。
你当然玩游戏定义 g++11
为 g++ -std=c++11
但这样的设置是不可移植的。
g++-6.* 将默认为 c++14,因此在某些情况下此开关将是隐式的。但是所有那些带有 g++-4.4.* 的 RHEL 和 CentOS boxen 可能需要很长时间才能消失。那些甚至可能无法处理您当前的项目...
是,升级到 GCC 6.1:
The C++ frontend now defaults to C++14 standard instead of C++98
您可以让 makefile 执行以下操作(这是一个没有变量的简单版本)。
out: source.cpp
g++ -std=c++11 source.cpp -o out
使用您选择的构建系统。可以是 make
、SCons
、CMake
、qmake
或其他,并设置所需的选项。只需 30 秒即可完成。
或者,将您的编译器升级到默认使用 C++11 的版本。
我在我的 C++ 程序中使用了我需要的一些特性 -std=c++11
在 g++ 中设置的选项
是否可以将此选项设置为默认选项,而不必在我编译时一直使用它?
或者如何在 Makefile 中设置它。
是的,您通常在 Makefile 中进行设置:
CXXFLAGS=-std=c++11
您还可以通过 autoconf
、cmake
或您可能部署的任何其他元构建工具检测合适的编译器。
你当然玩游戏定义 g++11
为 g++ -std=c++11
但这样的设置是不可移植的。
g++-6.* 将默认为 c++14,因此在某些情况下此开关将是隐式的。但是所有那些带有 g++-4.4.* 的 RHEL 和 CentOS boxen 可能需要很长时间才能消失。那些甚至可能无法处理您当前的项目...
是,升级到 GCC 6.1:
The C++ frontend now defaults to C++14 standard instead of C++98
您可以让 makefile 执行以下操作(这是一个没有变量的简单版本)。
out: source.cpp
g++ -std=c++11 source.cpp -o out
使用您选择的构建系统。可以是 make
、SCons
、CMake
、qmake
或其他,并设置所需的选项。只需 30 秒即可完成。
或者,将您的编译器升级到默认使用 C++11 的版本。