6
votes

I have Eclipse Juno C++ ( Build id: 20120614-1722 ). I'm trying to set the compiler invocation arguments with instruction -std=c++11 or -std=c++0x but while compiling the code below. There is no "Tool Settings" in Eclipse Juno (at least for Mac), so I cannot go to "C/C++ Build -> Settings -> Tool Settings". My compiler is GCC 4.8.0

#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main(void) {
    vector<string> v = {"a","b","c"};
    for(string s: v){
        cout << s << endl;
    }
    return 0;
}

I got:

HelloWorld.cpp:16:33: error: could not convert ‘{"a", "b", "c"}’ from ‘<brace-enclosed initializer list>’ to ‘std::vector<std::basic_string<char> >’
HelloWorld.cpp:17:16: error: range-based ‘for’ loops are not allowed in C++98 mode
3
What actual compiler and standard library are you using? - ildjarn
did you ensure, that you set the options for g++ (and not a different part of the tool-chain) ? : do this: C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Miscellaneous -> Other Flags. Put -std=c++0x at the end. - Carsten Greiner
There is no "Tool Settings" in Eclipse Juno. - Roman Kagan
Since GCC 4.8 is obviously not the standard system compiler, are you sure Eclipse actually calls that compiler when building and does not default to the system one? Unless your project is a Makefile project, you should have Project->Properties->C/C++ Build->Settings, and there is a tab for Tool Settings where you can configure the absolute path to the compiler as well as command line options. - jogojapan

3 Answers

5
votes

you might to follow the steps I described in this answer: Eclipse CDT C++11/C++0x support

One possibility is, that your options were applied to the wrong part of the tool chain.

0
votes

I just faced exactly the same problem. Please check whether your project has a custom "makefile" ( *.mk ). If it has that "makefile", please put the following to your "makefile" and compile.

"LOCAL_CFLAGS := -fexceptions -std=c++0x -std=c++11"

PS: LOCAL_CFLAGS is for the compiler flags which you can put in "xxx > Miscellaneous". And to be frank, I don't know how to solve it if your project doesn't have custom "makefile". But, Eclipse Juno literally doesn't have the path the guys in the above described.

-1
votes

The reason you don't see Tool Settings is because upon creating project, you should choose Executable instead of GNU Autotools