简体   繁体   中英

how to define -std=c++11 as default in g++

I'm using some features in my C++ programs that I need -std=c++11 option set in g++

Is it possible set this option as a default and don't be necessary use this all time I compile it?

Or how to set this in Makefile.

Yes, you typically set this in a Makefile:

CXXFLAGS=-std=c++11 

One layer above you can also detect a suitable compiler via autoconf , cmake or whichever other meta-buildtool you might deploy.

You of course play games as define g++11 as g++ -std=c++11 but such set-ups are not portable.

g++-6.* will default to c++14 so at some this switch will be implicit. But it might take a really long time for all those RHEL and CentOS boxen with g++-4.4.* to disappear. Those may not even handle your current project...

Yes, upgrade to GCC 6.1:

The C++ frontend now defaults to C++14 standard instead of C++98

From https://gcc.gnu.org/ml/gcc/2016-04/msg00244.html

You can have a makefile do this as follows (this is a simple version with no variables).

out: source.cpp
    g++ -std=c++11 source.cpp -o out

Use your build system of choice. Be that make , SCons , CMake , qmake or something else, and set the required option. Should take all of 30 seconds and you're done.

Or, upgrade your compiler to a version that uses C++11 by default.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM