6

我有 Eclipse Juno C++(内部版本号:20120614-1722)。我正在尝试使用指令 -std=c++11 或 -std=c++0x 设置编译器调用参数,但同时编译下面的代码。Eclipse Juno 中没有“工具设置”(至少对于 Mac),所以我无法转到“C/C++ 构建 -> 设置 -> 工具设置”。我的编译器是 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;
}

我有:

HelloWorld.cpp:16:33: error: could not convert ‘{"a", "b", "c"}’ from ‘&lt;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
4

3 回答 3

5

您可以按照我在此答案中描述的步骤操作: Eclipse CDT C++11/C++0x support

一种可能性是,您的选项被应用于工具链的错误部分。

于 2012-07-11T04:37:49.870 回答
0

我刚刚遇到了完全相同的问题。请检查您的项目是否有自定义 "makefile" ( *.mk ). 如果它有那个“makefile”,请将以下内容放入您的“makefile”并编译。

“LOCAL_CFLAGS := -fexceptions -std=c++0x -std=c++11”

PS:LOCAL_CFLAGS 用于编译器标志,您可以将其放入“xxx > Miscellaneous”中。坦率地说,如果您的项目没有自定义“makefile”,我不知道如何解决它。但是,Eclipse Juno 从字面上看并没有上面描述的那些人的路径。

于 2013-04-23T04:20:22.840 回答
-1

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

于 2012-08-07T01:23:19.960 回答