4

Qtを使用してWindows上でC++アプリを構築しようとしています。

私の設定は次のとおりです。

  1. インストール済みVs2008、2010、2012
  2. Qt5RC1をインストールしました

#includeしてstd::unique_ptrを使おうとすると、定義されていないことがわかります。VS2010ヘッダーを調べて、_HAS_CPP0Xを定義する必要があることを確認したので、DEFINES +=_HAS_CPP0Xとして.proに追加しました。

これはまだ効果がなかったので、Ctrlキーを押しながら#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に関連する、含まれているメモリヘッダー自体のエラーで失敗します。

だから私が知りたいのは:

  1. QtonWindowsはVs2010でサポートされているC++11機能を使用できますか?
  2. はいの場合、どのように?
  3. いいえの場合、LinuxでクロスプラットフォームのQt 5アプリを開発することは、他のプラットフォーム用に構築することが不可能であるため、クロスプラットフォームではないことを意味することに非常に失望しています。

編集:

これに対する解決策は明らかです。Qt5のソースをダウンロードしてMinGWでビルドすると、すべて設定されます(受け入れられた回答のC ++ 11 proオプションを含む)。

4

3 に答える 3

2

あなたは簡単に置くことができます:

CONFIG += c++11

.proファイル内。ただし、コンパイラを最近のものにアップグレードするか、g++またはclang強くお勧めします。

于 2013-01-04T14:18:16.140 に答える
0

QT Creator 2.6.0を実行しているので、[ツール]>[オプション]>[ビルドと実行]に移動して[コンパイラ]タブを探すと、オプションメニューが変更されていないと仮定すると、自動的に検出されたコンパイラのリストが表示されます。 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のサポートをオンにしますが、これはサブセットにすぎないことに注意してください。関連する質問があります。

于 2012-12-11T15:47:17.353 に答える
-1

いいえ

QtonWindowsはVs2010でサポートされているC++11機能を使用できますか?

そのためには、Visual2012を入手する必要があります。

いいえの場合、LinuxでクロスプラットフォームのQt 5アプリを開発することは、他のプラットフォーム用に構築することが不可能であるため、クロスプラットフォームではないことを意味することに非常に失望しています。

Macでは、XCode4コンパイラCLang2を使用し、任意のプラットフォームでは、GCC4.7に基づくコンパイラが機能します。

于 2012-12-11T17:08:09.497 に答える