2012-12-11 4 views
4

Qt를 사용하여 Windows에서 C++ 응용 프로그램을 빌드하려고합니다.Qt Creator 2.6.1 + Qt 5 + C++ 11 + MSVC2010 컴파일러

내 설정은 다음과 같습니다 Vs2008,2010,2012 설치된

  1. Qt는 5 RC1 지금은 #include를하고 표준을 사용하려고 ::이 있음을 알려줍니다 unique_ptr 때

설치 그것의 정의되지 않은, 그래서 VS2010 헤더를 보았다 및 _HAS_CPP0X 정의해야합니다, 그래서 정의 된 .pro 같이 _pro

이 여전히 영향을, 그래서 내가 Ctrl + 클릭 한 clicke

C : D를 #INCLUDE 메모리는 자사에서 메모리 헤더를 사용하여 찾을 수 \ 프로그램 파일 9.0 \ VC \ 정말 어떤 표준이없는

을 포함하는 마이크로 소프트 비주얼 스튜디오 \ (86) :: 거기에 unique_ptr!

C : \ 프로그램 파일 마이크로 소프트 비주얼 스튜디오 10.0 \ VC \ \ (86)를 포함 확실히

그것을보고해야 하는가?

나는 전체 경로를 통해 메모리를 포함 할 것이라고 생각했지만 여전히 이동 및 rvalue 참조와 같은 C++ 11과 관련된 포함 된 메모리 헤더 자체에서 오류가 발생합니다.

그래서 내가 알고 싶은 것입니다 :

  1. Windows에서 QT 수

    는 C++ 11 개 기능은 VS2010에서 지원 사용할 수 있습니까?
  2. 그렇다면 어떻게됩니까?
  3. 그렇다면 리눅스 플랫폼에 Qt 5 앱을 개발할 때 매우 실망 스럽습니다. 크로스 플랫폼이 아닌 다른 플랫폼을 위해 구축 할 수 없기 때문에 크로스 플랫폼을 의미합니다!

편집 :

이에 대한 해결책은 분명하다 너무 : 모든 설정 (허용에 INC는 C++ (11) 프로 옵션을 Qt5의 소스를 다운로드하고는 MinGW로를 구축하고 있습니다 대답).

답변

2

GCC를 기반으로. 그러나 컴파일러를 최신 g++ 또는 clang으로 업그레이드하는 것이 좋습니다.

+1

... 전환 컴파일러는 또한 스크립팅 언어와 같은 여러 사전 요구 사항을 먼저 설치해야하는 전체 Qt를 다시 컴파일해야한다는 것을 의미합니다. 그래서, 하나의 대안은 지금 리눅스에서 개발하고, VC++ 2010이 아닌 다른 것을 위해 사전 빌드 된 Windows 바이너리가 생기면 Windows 지원을 추가하는 것입니다 ... 오래 걸리지 않기를 바랍니다. – hyde

+0

두 번의 클릭만으로 모든 기본 전제 조건이 충족되었습니다. 시간의 가치있는 투자라고 생각하십시오. – user1095108

+0

Windows에서 작동하도록하는 유일한 방법은 새로운 MinGw/g ++를 사용하는 것이기 때문에이 대답을 수락하는 것입니다. – paulm

0

난 당신이 & 실행 빌드 도구> 옵션>로 이동하여 컴파일러가 탭하면 목록이 표시에 대한 다음 보면 그렇게 변경되지 않은 옵션 메뉴를 가정 QT 창조주 2.6.0을 실행하는거야 자동으로 감지 된 컴파일러 (포함) Microsoft Visual C++ 컴파일러 10.0. 그렇지 않으면 수동으로 추가 할 수 있습니다. C++ 11 지원으로

, 당신은 cmake를 사용하고 당신이 당신의 cmake 파일에이를 추가 할 수 있습니다 같은 QT 창조주에 프로젝트를 수입하는 경우 : 세트 (CMAKE_CXX_FLAGS "-std = C++ 0X")

당신이 + = -std = C + +0

편집 the manual 설정 QMAKE_CXXFLAGS에 따라 다음 qmake를를 사용하는 경우 : 비주얼 스튜디오 2010 (비주얼 C++ (10)를 말했다 .0)은 디폴트로 C++ 11 지원을 켭니다. 단지 서브 세트 일 뿐이므로주의해야합니다. 여기에는 관련 question이 있습니다.

+0

옵션이 같지만 컴파일러를 선택하면 cl.exe가 발견되지 않는 빌드 오류가 발생합니다. 그리고 기본적으로 컴파일러가 설정 한 qmake 플래그는 -std = C++ 0x가 의미하는 (인식 할 수없는 옵션) 것을 알지 못한다고 불평합니다. – paulm

+0

나는 이것이 cl.exe에 대한 귀하의 질문에 대답 할 것이라고 믿습니다. http://stackoverflow.com/questions/8800361/cl-is-not-recognized-as-an-internal-or-external-command 나는 메모를 추가했습니다. C++ 0x와 관련하여. –

+0

cmd.exe에서 cl.exe를 실행 한 이후 이미 경로에 있다고 확신하지만 내일 전에 경로에 추가 할 것입니다! – paulm

-1

Windows에서 QT 수 NO가 C++ 11 개 기능은 VS2010에서 지원 사용할 수 있습니까?

당신은 Visual 2012를 사용해야합니다.

그렇다면 리눅스 플랫폼에 Qt 5 앱을 개발할 때 매우 실망 스럽습니다. 다른 플랫폼을 위해 빌드하기가 불가능하기 때문에 교차 플랫폼이 아닙니다. 당신의 .PRO 파일에

CONFIG += c++11 

: 맥, 사용 엑스 코드 4 컴파일러 연타 2 켜기 및 모든 플랫폼에서

컴파일러는 4.7 작품 당신은 간단하게 넣을 수 있습니다

+0

VS2010이 auto/unique_ptr/lambda 등과 같이 많은 C++ 11 기능을 지원합니까? – paulm

+0

안녕 자동 및 nullptr 예. unique_ptr, 난 그렇게 생각하지 않지만, 여기를 확인하십시오 : http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx – dzada

+0

하지만 VS2010 IDE 대신 QtCreator를 열면 hello world를 std :: unique_ptr로 만드십시오. 빌드/실행/etc 이후로 지원되는 것 같습니다. – paulm