2012-07-10 3 views
6

Eclipse Juno C++ (빌드 ID : 20120614-1722). 컴파일러 호출 인수를 -std = C++ 11 또는 -std = C++ 0x로 설정하려고합니다. 그러나 아래 코드를 컴파일하는 동안. Eclipse Juno (최소한 Mac의 경우)에는 "도구 설정"이 없으므로 "C/C++ 빌드 -> 설정 -> 도구 설정"으로 이동할 수 없습니다. 제 컴파일러는Eclipse를 설정할 수 없습니다 Juno C++ with std = C++ 11

#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; 
} 
GCC 4.8.0입니다

내가 가지고 :

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 
+2

사용중인 실제 _compiler_ 및 표준 라이브러리는 무엇입니까? – ildjarn

+0

GCC 4.8.0 컴파일러 –

+1

g ++ (도구 체인의 다른 부분이 아님)에 대한 옵션을 설정했는지 확인 했습니까? : C/C++ Build -> Settings -> Tool Settings -> GCC C++ 컴파일러 -> Miscellaneous -> Other Flags. 끝에서 -std = C++ 0x를 입력하십시오. –

답변

5

당신은 내가이 답변에 설명 된 절차를 따라 수도 : 옵션이 있다고, Eclipse CDT C++11/C++0x support

하나의 가능성이입니다 도구 체인의 잘못된 부분에 적용됩니다.

-1

프로젝트를 만들 때, 당신이 대신 난 그냥 정확히 같은 문제에 직면

+0

autotools가 필요하고 올바르게 구성하려면 코드를 잘 컴파일하지만 Eclipse는 여전히 구문 오류를 표시합니다. 자동 도구를 사용하지 않기로 선택하면 문제가 해결되지 않습니다. –

0

GNU Autotools가의 실행 파일을 선택해야하기 때문에 당신이 도구 설정이 표시되지 않는 이유입니다. 프로젝트에 사용자 정의 "makefile" (*.mk)이 있는지 확인하십시오. "makefile"이 있으면 다음을 "makefile"에 넣고 컴파일하십시오.

"LOCAL_CFLAGS = -fexceptions -std = C + +0 -std = ++ 11 C"

PS : LOCAL_CFLAGS 당신이 넣어 수있는 컴파일러 플래그입니다 "XXX> 기타 ". 그리고 솔직히 말해서, 프로젝트가 커스텀 "makefile"을 가지고 있지 않다면 그것을 해결하는 방법을 모른다. 그러나 Eclipse Juno는 문자 그대로 위에서 설명한 사람들의 길을 가지고 있지 않습니다.