私はWindows上でMinGWベースの64ビットQtプログラムを構築するための最も簡単な方法を探しています(そして、私だけではないことを確認しています)。簡単なことは、最小限の労力と時間を意味します(例えば、構築とセットアップのため)。現在、MinGW/OpenGLとQtCreatorを使用して、Windows 32ビット用のqt-project.org Webサイトの通常の公式開発環境を実行しています。もちろん、qt-project.orgの(未完成の...)64ビットwikiページを読んでおり、さまざまなstackoverflowの質問も読んでいますが、それでも混乱しています。 64ビットQtの構築方法のトピックは他の投稿で扱われていることは知っていますが、これは私の質問ではなく、概要と最も有利な64ビットMinGWポートです。
たとえば、私を混乱させたのは、mingwbuilds sourceforgeプロジェクトの「x64-Qt-5.2.1 + QTCreator-3.0.1-(gcc-4.8.2-seh).7z」パッケージのDLLが32ビットのように見えることです。 。
私の質問を少し明確にするために、関連する質問もいくつか聞かせてください。
ご協力ありがとうございました。
2019年3月11日更新:Qt 5.12以降、Qtプロジェクトは64ビットモードのMinGW-w64を公式にサポートしています。 Qtインストーラーからインストールするか、Qtのソースから自分でビルドすることができます(ビルドの成功を妨げる問題を解決しました)。
Prior update:rubenvb's answer がこの質問に対するベストアンサーになったと思います:MSYS2には最新のものが含まれていますMinGW-w64で構築されたQtは、64ビットQtアプリを構築するために必要なものです。 rubenvbのデプロイのQt wikiリンクを使用することをお勧めします。大幅に改善されました。
Qt64-NGプロジェクト からQtビルドをインストールすることをお勧めします。
このプロジェクトは、MinGW-w64を使用した最新のx64 Qtビルドを提供します。 MinGW-w64プロジェクトのGCCコンパイラもインストーラーバージョンに含まれています(7zには含まれていません)。独自のアプリを構築するためのQtの構築に使用したMinGW-w64のGCCと同じバージョンが必要になるため、インストーラーを選択することをお勧めします。
必要な例外スタックフレームの巻き戻し方法でビルドを選択する必要があります。質問 sjljとdwarfとsehの違いは何ですか? は、Qtの異なるビルドに存在する例外ハンドラーのタイプの違いを説明しています。 SJLJはGCC 4.8がリリースされる前の唯一の選択肢でしたが、後のGCCバージョンではSEHがサポートされています。 SEHの方が効率的ですが、どちらの選択でも機能します。
Qtをインストールしたら、Qt/qt-ver/qt-ver/binおよびQt/qt-ver/mingw64/binディレクトリを環境変数のUserまたはSystem Path変数に追加できます。これにより、MinGWを使用できます-w64のGCCは、好みのビルドプロセスからビルドします。これを実行すると、Qt CreatorはMinGW-w64をインストール済みコンパイラとして自動検出します。
パスに追加したくない場合は、Qt Creatorでセットアップしたバージョンのコンパイラーを手動で指定できます。 [オプション]> [ビルドと実行]でqmake.exeを選択して、Qtバージョンを追加する必要があります。また、[ビルドと実行]> [デバッガ]タブで、デバッガとしてgdb.exeを選択することもできます。 Qt/qt-ver/qt-ver/mingw64/binにあります。
MinGW-w64ツールチェーンを他のツールチェーンと交換できます。 Qt Creatorでこれを行うには、キットを作成して交換できます。
Qt64-NGビルドを開発と展開に使用できます。デプロイするには、アプリケーションをアプリケーションとともに実行するために必要なファイルをパッケージ化します。これにより、エンドユーザーは追加のインストール手順を実行する必要がなくなります。
最初に、(おそらくアプリケーション名で)展開フォルダーを作成し、アプリケーション実行ファイルをそこにコピーします。 Qt Creatorを使用している場合、サイドバーの[プロジェクト]タブまたはアプリケーションの.proファイル(指定されている場合)のいずれかで、アプリケーションexeへのパスを見つけることができます。
アプリケーションを実行するために必要なDLL依存関係をコピーする方法は2つあります。必要なファイルを手動でコピーするか、windeployqtを使用できます。windeployqtは、作成したアプリケーションデプロイフォルダーにデプロイに必要な(ほとんどの)依存関係を自動的にコピーするQtインストールで提供されるプログラムです。
次のdllファイルをQt/qt-ver/qt-ver/binおよびQt/qt-ver/mingw64/binフォルダーからアプリケーションデプロイフォルダーにコピーします。一部のdllファイルは両方のフォルダーに配置され、どちらの場所でも使用できます。
icudt54.dll
icuin54.dll
icuuc54.dll
libgcc_s_sjlj.dll or libgcc_s_seh.dll (corresponds with chosen stack unwinding method)
libssp-0.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
また、プロジェクトで使用しているQtモジュールに対応するQt5 * .dllファイルを含める必要があります。
次に、Qtが必要とするプラグインdllファイルをコピーする必要があります。 Qtは、デフォルトでアプリケーションのdeploy folder/pluginsでプラグインを探します。 Qt/qt-ver/qt-ver/pluginsでコピーするプラグインフォルダーを見つけることができます。これの例外は、プラットフォームフォルダーであり、アプリケーションデプロイディレクトリ/プラットフォームで検索しようとします。次のディレクトリ構造は、最小プロジェクトのファイルのコピー先を示しています。含まれているフォルダーを含む他の必要なプラグインを、deployment/pluginsフォルダーにコピーします。
/ deploy
/platforms
/plugins
icudt54.dll
icuin54.dll
icuuc54.dll
app.exe
libgcc_s_seh-1.dll
libssp-0.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
/ deploy/platforms
qwindows.dll
/ deploy/plugins/imageformats
qjpeg.dll
Windeployqt.exeはQt/qt-ver/qt-ver/binフォルダーにあります。 Windeployqtを正しく動作させるには、Qt/qt-ver/qt-ver/binおよびmingw64/binフォルダーがユーザーまたはシステムパス変数にある必要があります。
Windeployqtを使用するには、コマンドウィンドウを開き、アプリケーションのdeployディレクトリに移動します。それを実行するための構文は Qt Deployment にあります。おそらく次のように実行する必要があります。
windeployqt.exe app.exe
Windeployqt(Qt 5.4.1)は、プラグインフォルダー内ではなく、imageformatsおよびiconenginesプラグインフォルダーをアプリケーションデプロイディレクトリレベルにコピーします。これは、Qtがこれらのフォルダーを探す場所を変更するため、正しい場所です。
Qt開発ライブラリがインストールされておらず、パスにないコンピューターでアプリケーションを実行することで、正しいファイルがあるかどうかをテストできます。アプリケーションの起動時にエラーが発生しなければ、Qtが必要な依存関係を見つけたことがわかり、アプリケーションを配布用にパッケージ化できます。
エラーが発生する場合は、 トリプルブート展開ガイド を参照してください。 Process Explorer を使用して、依存関係のないエラーが発生したときにアプリケーションがロードしようとする依存関係を確認することもできます。
多くの場合、アプリケーションはアーカイブやインストーラーとともに配布されます。 Qt Installer Framework は、インストーラー実行可能ファイルとして配布するためにQtアプリケーションをパッケージ化する便利な方法を提供します。
MSYS2をインストールできます。これには、パッケージマネージャーと、Qtを含むパッケージのロードのビルド済みバージョンが含まれます。 Qt Creator(ちなみにリポジトリにもあります)。
インストールは簡単です:
MSYS2コマンドプロンプトを開き、Qtをインストールします。
pacman -Sy mingw-w64- {i686、x86_64} -qt5
Qtのqmakeは<msys2>/mingw{64,32}/bin
にインストールされ、それぞれのコマンドプロンプトからアクセスできます。
同様に、開発に必要な他の何百ものライブラリとツールをインストールできます。
アプリケーションの展開の残りについては、 Windows展開に関するQtプロジェクトwikiページ を参照します。