2013-06-04 3 views
6

Qt Creator를 "일반"(비 Qt) 프로젝트 용 코드 편집기로 사용하는 경우 내 핵심 질문은 입니다. C++ 11을 사용하는 방법은 무엇입니까? 구문 강조 표시?일반 프로젝트 용 Qt Creator C++ 11 구문 강조

나는 잠시 동안 일해 왔던 C++ 11 프로젝트를 가지고 있으며, Qt Creator에 시도해보기로 결정했습니다. 이것은 손으로 코딩 된 메이크 파일 등을 포함하는 단순한 바닐라 C++ 프로젝트입니다.

Qt Creator는 프로젝트 ("eSLIME")를 열어 eSLIME.config, eSLIME.includes 및 eSLIME.files 파일을 만들었습니다. .pro 파일을 만들지 않았습니다.

C++ 11 호출을 인식하지 못하는 것 같습니다. 예를 들어, "#include <unordered_set>"은 밑줄이 녹색이며 해당 파일이나 디렉토리가 없음을 나타냅니다.

나는 .config 파일에 무엇인가 넣어야한다고 생각하지만, Google 검색이 도움이되지 못하는 것이 무엇인지 파악할 수 없습니다. 나는 append -std = C++ 0x를 시도했는데 작동하지 않았다.

추신 : 코드가 너무 복잡하여 지금 빌드하지 못하기 때문에 IDE로 전환했습니다. 어떤 C++ 파일에 대한

+0

eSLIME.includes 파일에 해당 디렉토리를 추가하려고 했습니까? 예 : unordered_map은 /usr/include/c++/4.4/에 있습니다. 이것이 QtCreator가 구문 분석 할 수 있도록 추가 할 경로입니다. – ypnos

+0

그게 효과가있어! 고맙습니다. –

+0

다른 버전의 C++로 여러 플랫폼에서 작업하는 경향이 있으므로 그래도 기본적으로 작동시키는 것이 좋을 것입니다. :) –

답변

1

Qt는 5.0.2 지원 C++ (11) 구문은 다음

QT 5.0.2 (Qt는 창조주 2.7.0 포함) 다운로드합니다.

+0

감사합니다. Meysam 및 fasked! –

7

이 질문과 대답에서 2 년이 지난 뒤에 에 변경된 내용이 없습니다. Qt Creator (적어도 Linux의 경우) : C++ 11 헤더를 구문 분석 할 수없는 최신 버전 (3.5 버전)도 있습니다.

#if __cplusplus < 201103L 
#include <bits/c++0x_warning.h> 
// disable all tasty functionality 
#endif 
:

문제는 내부 Qt는 창조주 파서 기본적 __cplusplus으로 201103L보다 약간 값으로 정의되어 있다는 것입니다, STL 헤더이 매크로의 검사를 많이, 이런 식으로 뭔가가있다

첫째로 나는 *의 .config에 다음 줄을 추가 시도 :

#define __cplusplus 201103L 

아무것도 일어나지 않았다.

몇 가지 조사 후, 나는 마침내 적절한 해결책을 발견 : 단지 *의 .config에 쓰기 :

#define __cplusplus 201103 

마술의 모든 것을 살아 becames!

관련 문제