반응형

OS: Ubuntu 14.04 (amd64)

g++ version: 4.8.4

Eclipse: Mars, Neon



이클립스(Eclipse)에서 C++2011  문법(std::thread나 향상된 for loop 같은 것)을 쓰려고 하면 빌드 설정에 -std=c++0x 또는 -std=c++11 같은 플래그를 추가해 두어도 정작 에디터에서 계속 syntax error를 표시하는 경우가 있다.


(이클립스 에디터가 C++11 문법에 따라 쓴 std::thread 코드를 

unresolved symbol error로 표시하고 있다.)



해결하려면, 프로젝트 이름에 마우스 오른쪽 단추를 누르고 Properties로 가서,

C/C++ General > Preprocessor Include Paths, Macros etc.로 간 다음,

Providers 탭에서 CDT GCC Build-in Compiler Settings를 선택한다.


그리고 하단에 "Use global provider shared between projects" 선택을 해제하고,

Command to get compiler specs 칸에 -std=c++0x 를 추가한다.


또한 순서상 중간 쯤에 와 있는 CDT GCC Build-in Compiler Settings 항목을 Move Up을 이용해서 가장 위로 끌어올린 뒤에 Apply 버튼과 OK 버튼을 누른다.




마지막으로, 이클립스 메뉴에서 

Project > C/C++ Index > Re-resolve Unresolved Includes

Project > C/C++ Index > Freshen All Files

Project > C/C++ Index > Rebuild

를 차례대로 눌러 주면 에러로 표시하지 않게 된다.


(C++ 2011 문법의 syntax error가 해결된 이후의 에디터 화면)




<참고자료>

[1] http://stackoverflow.com/questions/17457069/enabling-c11-in-eclipse-juno-kepler-luna-cdt



반응형
블로그 이미지

Bryan_

,