簡體   English   中英

Qt Creator 2.6.1 + Qt 5 + C ++ 11 + MSVC2010編譯器

[英]Qt Creator 2.6.1 + Qt 5 + C++11 + MSVC2010 compiler

我正在嘗試使用Qt在Windows上構建C ++應用程序。

我的設置是:

  1. 已安裝Vs2008,2010,2012
  2. 已安裝Qt 5 RC1

現在當我#include並嘗試使用std :: unique_ptr它告訴我它沒有定義,所以我查看VS2010頭文件並看到需要定義_HAS_CPP0X,所以我把它添加到.pro中作為DEFINES + = _HAS_CPP0X

這仍然沒有效果,所以我按住+單擊#include內存只是為了找到它使用的內存頭:

C:\\ Program Files(x86)\\ Microsoft Visual Studio 9.0 \\ VC \\ include

那里真的沒有任何std :: unique_ptr!

當然應該看看:

C:\\ Program Files(x86)\\ Microsoft Visual Studio 10.0 \\ VC \\ include?

我想我會通過完整路徑包含內存,但是這仍然會失敗,包含的內存頭本身與C ++ 11之類的內容有關,例如move和rvalue引用。

所以我想知道的是:

  1. Windows上的Qt可以使用Vs2010支持的C ++ 11功能嗎?
  2. 如果是,那怎么樣?
  3. 如果沒有,那么我非常失望,因為在Linux上開發跨平台Qt 5應用程序意味着它不是跨平台,因為它不可能為任何其他平台構建它!

編輯:

正因如此,解決方案很清楚:下載Qt5的源代碼並使用MinGW構建它,您將全部設置(在接受的答案中包含C ++ 11 pro選項)。

你可以簡單地說:

CONFIG += c++11

在.pro文件中。 但強烈建議將編譯器升級到最近的g++clang

我正在運行QT Creator 2.6.0所以假設如果你轉到工具>選項>構建和運行選項菜單沒有改變,然后查找編譯器選項卡,你應該看到自動檢測到的編譯器列表,希望包括Microsoft Visual C ++編譯器10.0 如果沒有,可以手動添加。

至於C ++ 11支持,如果您正在使用cmake並將項目導入到QT Creator中,您可以將其添加到您的cmake文件中:set(CMAKE_CXX_FLAGS“-std = c ++ 0x”)

如果您正在使用qmake,那么根據手冊設置QMAKE_CXXFLAGS + = -std = c ++ 0x

編輯:那說Visual Studio 2010(Visual C ++ 10.0)默認啟用c ++ 11支持,但應該注意它只是一個子集,這是一個相關的問題

沒有

Windows上的Qt可以使用Vs2010支持的C ++ 11功能嗎?

你必須得到Visual 2012。

如果沒有,那么我非常失望,因為在Linux上開發跨平台Qt 5應用程序意味着它不是跨平台,因為它不可能為任何其他平台構建它!

在Mac上,使用XCode 4編譯器CLang 2,在任何平台上,基於GCC 4.7的編譯器都可以工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM