手短に:
- 私の 64 ビット Qt ビルドは C++11 をサポートしていません。
- 私の Qt ビルドは C++11 で 32 ビットです。
- オンライン インストーラーを使用する Qt5 は 32 ビットです
- 私の人生の最後の 3 日間をこれに捧げたにもかかわらず、64 ビットの Qt5 をソースからビルドすることができません。
ヘルプ!私の環境では何か互換性がないはずですが、それは何でしょうか?
そのため、Windows で C++11 を使用して 64 ビット Qt アプリを開発する必要があります。ここ、ここ、ここ、ここ、ここのスレッド/ガイドを見つけましたが、いずれも機能または適用されませんが、これらの 2 番目のスレッドにより、C++11 をサポートする Qt 4.8.3 をビルドできることに注意してください (ただし、32 ビット)。3 つ目は、本来よりも複雑に見え、VS 2010 でのビルドも含まれます。これが問題の一部のように思われるため、試していません。また、mingw や clang などのさまざまなコンパイラを使用して以前のバージョンをビルドしようとして多くの時間を無駄にしてきたので、cl を使用する必要があると確信しています。
基本的に、Qt4.8.3 をビルドし、QtCreator 2.6.1 内から 64 ビット アプリを実行できるようになりましたが、C++11 を完全にサポートすることはできません。非常に限られた C++11 サポートしかない VS 10.0 の cl のみを検出します。VS 11.0 から cl を使用する方法を理解することは、私の問題の 1 つの解決策です。でもやってみると
QMAKE_CXX = C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl
ビルドはエラー 2 で失敗し、ビルドjom
のオプションを選択するとnmake
、同様のエラーが発生します。
Qt 5 は C++11 を完全にサポートする必要があります。しかし、ソースから自分でビルドしようとすると失敗します。この理由は、VS2012 x64 Cross Tools コマンド プロンプトから configure/make を実行-platform win32-2012
し、configure ステップで指定し、このガイドQMAKE_COMPILER_DEFINES += _MSC_VER=1700 WIN32
に従って指定しても、win32-msvc2010 と win32-msvc2012 mkspecs の両方でビルドされるためと思われます。 VS 2010 の cl と競合しているため、何らかの競合が発生しています。これが私のコマンドです:
configure
configure -static -debug-and-release -confirm-license -opensource -nomake tests -nomake Exampmles -opengl デスクトップ -no-libjpeg -platform win32-msvc2012
そして、ビルドしようとしたときのリンカの失敗は次のとおりです。
上の 2 つの段落の最後に、msvc-2010 が含まれていることがわかります。また、コンソール出力 (表示されていません) の前半にコマンドが-D_MSC_VER=1600
ありmoc
ます。
だから私は途方に暮れています、誰か助けてもらえますか?
編集:Qt5で64ビットアプリを構築していると述べましたが、実際にはQt 4.8.3のビルドから64ビットアプリ(C++ 11サポートなし)を構築できます。Qt5 でこれを試すと、次のエラーが発生します。
LNK1112: モジュール マシン タイプ 'X86' がターゲット マシン タイプ 'x64' と競合しています
したがって、これはQt5を64ビットモードでコンパイルすることにつながりますが、これはできないようです。