I am running Eclipse Helios and I have g++-4.6 installed. Hope I am not wrong that g++4.6 implements C++ 11 features. I have created a C++ project which uses the nullptr and auto keywords. The build gives the following errors:-
../{filename}.cpp:13:13: error: ‘nullptr’ was not declared in this scope
../{filename}.cpp:14:2: warning: ‘auto’ will change meaning in C++0x; please remove it [-Wc++0x-compat]
Actually it was building fine until yesterday. I am getting these from nowhere today. Please help me solve this problem.
Finally found out what to do. Added the -std=c++0x compiler argument under Project Properties -> C/C++ Build -> Settings -> GCC C++ Compiler -> Miscellaneous. It works now!
But how to add this flag by default for all C++ projects? Anybody?
set (CMAKE_CXX_STANDARD 11)
tobilocker 2018-08-02 14:32
According to the GCC page for C++11:
To enable C++0x support, add the command-line parameter -std=c++0x to your g++ command line. Or, to enable GNU extensions in addition to C++0x extensions, add -std=gnu++0x to your g++ command line. GCC 4.7 and later support -std=c++11 and -std=gnu++11 as well.
Did you compile with -std=gnu++0x
?
I added it under Project Properties -> C/C++ Build -> Discovery Options -> Compiler Invocation Arguments. Is that the right place - Vivek Ragunathan 2012-04-05 17:59
-std=c++11
or -std=c++0xdepending on your compiler version. The
gnu++0x` enables non-standard extensions - rubenvb 2012-04-05 18:45
But how to add this flag by default for all C++ projects? Anybody?
Thanks Vivek Ragunatha - Vivek Ragunathan 2012-04-05 18:58
Is that an actual compiler error or a Code Analysis error? Some times the code analysis can be a bit sketchy and report non-valid errors.
To turn off code analysis for the project, right click on your project in the Project Explorer, click on Properties, then go to the C/C++ General tab, then Code Analysis. Then click on "Use Project Settings" and disable the ones that you do not wish for.
Also, are you sure you are compiling with the C++11 compiler?
Eclipse Java EE IDE for Web Developers. Version: Helios Release Build id: 20100617-1415
Thank - Vivek Ragunathan 2012-04-05 18:06
But how to add this flag by default for all C++ projects? Anybody?
Thanks Vivek Ragunatha - Vivek Ragunathan 2012-04-05 19:00
nullptr
and other keywords to code analyzer or not? I would like to stay with code analyzer.. - sorush-r 2013-05-03 06:04
You are using g++ 4.6 version you must invoke the flag -std=c++0x to compile
g++ -std=c++0x *.cpp -o output
Go to Settings -> Compiler... And add flag to "Have g++ follow the coming C++0x ISO C++ language standard [std=c++0x]
I add the ",-std=c++0x" after "-c -fmessage-length=0",under Project Properties -> C/C++ Build -> Settings -> GCC C++ Compiler -> Miscellaneous. Dont't forget to add the comma "," as the seperator.
Trying with a different version of gcc worked for me - gcc 4.9 in my case.