13

手短に:

  1. 私の 64 ビット Qt ビルドは C++11 をサポートしていません。
  2. 私の Qt ビルドは C++11 で 32 ビットです。
  3. オンライン インストーラーを使用する Qt5 は 32 ビットです
  4. 私の人生の最後の 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ビットモードでコンパイルすることにつながりますが、これはできないようです。

4

3 に答える 3

2

4.8.3 に戻って 64 ビット モードで再構築することで、最終的に「十分な」解決策が得られました。今回は、C++11 をサポートして構築されていることを確認しました。Qt5を含むソリューションが理想的であるため、これをしばらく開いたままにして、誰かがそれを行う方法を理解できるかどうかを確認します.

重要なのは、私が 5.0 をビルドしようとしたのと同じプロンプトから、 64 ビットの C++11 をサポートする 4.8.3 を正常にビルドできたことです。ディレクトリを変更しただけです。だから同じ環境、すべて。また、Qt5 に必要な追加の前提条件もすべてダウンロードしました。

于 2013-01-21T07:27:23.407 に答える
2

64 ビットをサポートする Qt 5.0.1 SDK のプレビルドは、http://releases.qt-project.org/digia/5.0.1/latest/ にあります

テスト済みで動作しています:)

于 2013-01-23T15:10:51.460 に答える