Cannot set Eclipse Juno C++ with std=c++11

笑着哭i 提交于 2019-12-10 13:12:36

问题


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

回答1:


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.




回答2:


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.




回答3:


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



来源:https://stackoverflow.com/questions/11420336/cannot-set-eclipse-juno-c-with-std-c11

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!