2013-06-11 1 views
0

Ubuntu 소프트웨어 센터에서 Ubuntu RR에 MinGW를 사용하여 QtCreator를 설치했습니다. 나는 특히 C++ 11 기능을 사용하는 몇 가지 코드가 있습니다 MinGW를 사용하는 QtCreator가 std :: shared_pointer를 찾을 수 없습니다.

이 강하게 열거를 입력을 - 예 : 열거 클래스 컬러 {RED, GREEN, BLUE}

표준 : : shared_ptr의 유형은, memory.h에 포함 .

이 코드는 Qt를 전혀 사용하지 않습니다. 그것은 간단한 콘솔 응용 프로그램이며, C++ 11 컴파일러 지시문이 활성화 된 상태에서 CodeBlocks/MinGW 및 CodeLite/MinGW를 사용하여 컴파일되고 올바르게 실행됩니다.

QtCreator의 동일한 코드 (QtCreator의 간단한 C++ 콘솔 프로젝트)에서 프로젝트를 만들려고하면 강력한 형식의 열거 형에 C++ 11이 기본적으로 활성화되어 있어야한다는 경고가 표시됩니다. 그리고 컴파일러는 shared_ptr 유형을 전혀 인식하지 못합니다. 컴파일 할 수 없습니다.

무엇이 잘못 되었나요? 내가 설정해야하는 또 다른 컴파일러 옵션이 있습니까? 이 오류 메시지는 C++ 11이 기본적으로 활성화되어 있음을 나타냅니다. 다른 것? 나는 QtCreator를 처음 접했고 컴파일러 플래그를 설정할 위치를 찾지 못하고 열거 형에 대한 경고를 제거 할 수 없다. 그 설정은 어디에 있습니까?

가장 중요한 것은 컴파일러에서 std :: shared_ptr 유형을 인식 할 수 있도록하려면 어떻게해야합니까?

답변

2

잘 권리 포함은

#include <memory> 

그리고 당신은 C++ 11 일을 확인하기 위해 .pro 파일에

QMAKE_CXXFLAGS += -std=c++11 

를 추가로되어있다.

편집 : gcc 4.7보다 오래된 컴파일러의 경우 해당 플래그에 c++0x 값을 사용해야합니다.

+0

내가 이미 가지고있는 포함 - 그것은 다른 IDE의 및 QtCreator 함께 문제가 머리글 스타일이 아닙니다 - ** # ** 포함 사용하고 있습니다. QMAKE_CXXFLAGS + = -std = C++ 11을 .pro 파일에 추가하기 만하면됩니다. 빌드하여 정상적으로 실행했습니다. – Vector

관련 문제