web-dev-qa-db-ja.com

Qt CreatorでMinGW-64を使用する方法

私はこれについて多くの投稿があることを知っていますが、正直に言ってそれを理解していませんでした。

Qt Creator(オープンソース5.7)のキットをインストールするにはどうすればよいですか?

  • 私はすでにMSYS2をダウンロードしてインストールしました...それをどうするかわかりません。
  • すでにQt64-NGをダウンロードしてインストールしました。..次に何をすべきかわかりません。

Qtで開発したいので、MinGW 32とMinGW 64を選択しました。

前もって感謝します!


編集:wikiページもチェックしました。ほとんどのコマンドは機能しませんでした。そして、私はそれが時代遅れだと言われました。

18
andseg

あなたの質問はQt Creatorのキットをどのようにインストールするかということを知っていますが、最初に紹介が必要だと思います(ごめんなさい、英語は私の母国語ではありません)

はじめに

その意図は、WindowsでGCCコンパイラを使用することです。これは、MinGWが必要であることを意味しています(Minimalist GNU for Windows)。

MinGWは32ビットでのみ動作するため、MinGW-w64またはTDM-GCCフレーバーを使用するためには64ビットフォークが必要です。

  • MinGW、32ビットアプリケーション用のGCCコンパイラ。
  • MinGW-w64、32および64ビットアプリケーション用のGCCコンパイラ。
  • TDM-GCC、32および64ビットアプリケーション用のGCCコンパイラ。

これにより、Windowsでアプリケーション/プログラムを作成できます。さらに、他の2つの異なるツールがあります:

  • Qt Frameworkライブラリ。マルチプラットフォーム互換のGUI /インターフェイスを作成します。
  • Qt Creator、C/C++エディター、Qt Framework用の追加編集ツール。


バイナリ互換チェーンについて

アプリケーションを作成するときは、同じコンパイラバージョンでコンパイルされたライブラリのチェーンをたどる必要があります。これらのライブラリのアプリケーションバイナリインターフェイス(32ビットまたは64ビット)をたどるのと同じ方法です。

つまり、MinGW-w64 5.3とQt 5.7フレームワークを使用して32ビットと64ビットのアプリケーションをコンパイルする場合、次のものが必要です。

  • MinGW-w64 5.3(configにフラグ32ビット)およびQt 5.7 Framwork 32ビットビルドは、MinGW-w64(コンパイラとのバイナリコードの互換性を維持している限り、MinGW-w64バージョン5.3以前)でコンパイルされます。
  • MinGW-w64 5.3(構成にフラグ64ビット)およびQt 5.7 Framwork 64ビットビルドは、MinGW-w64(コンパイラとのバイナリコード互換性を維持している限り、MinGW-w64バージョン5.3以前)でコンパイルされます。

今、奇妙なものが来ます。 Qtの公式Webページでは、MinGWの32ビットビルドのみが利用可能です...理由はわかりません...

Qt64-NGプロジェクトは、MinGW-w64用のQt Framework 64ビットバイナリパッケージを入手する場所です。残念ながらプロジェクトは閉じられているため、Qt 5.5 Frameworkバージョンまでしか利用できません。

MinGW-w64用の新しい64ビットQtバイナリパッケージを入手できる他の場所がわかりません(MSYS2プロジェクトのパッケージかもしれませんが、まだ試していません)。したがって、必要な場合は、現時点で自分でコンパイルする必要があります(これは、オープンソース5.7のコメントに答えるためです)。


インストールと構成

さて、あなたの質問。 Qt Creatorのキットをインストールする方法。私が使用するものであるため、64ビットのバイナリに答えます(そして、あなたは32ビットでも同じことをする必要があります)

MinGW-w64でQt Creatorを使用するには、次のものが必要です。

  • Qt Creatorをダウンロードしてインストールします。私のアドバイスは、4.1(または上位バージョン) snapshots をダウンロードすることです(CMakeプロジェクトを使用する場合)。

  • ダウンロード MinGW-w64 (posix-sehまたは任意のフレーバー)+ 1つのフォルダーで解凍します。

以上で、32ビットおよび64ビットのアプリケーションを作成できます。

他の方法では、上記の手順に加えて、Qt Frameworkライブラリ(アプリケーションのGUI /インターフェイス)を使用してアプリケーションを作成する場合は、バイナリパッケージ、この場合は64ビット(32ビットバイナリパッケージはQt公式ページ)

  • ダウンロード Qt64-NG (posix-sehまたは上記のフレーバーを選択)+ 1つのフォルダーで解凍します。
    その後、そのディレクトリに含まれるqtbinpatcher.exeを実行する必要があります。ダブルクリックするだけです。
    注:このディレクトリを他のパスに変更する場合は、qtbinpatcherを再度実行してください。

ここで、インストールプロセスが終了します。私の場合、すべてが同じフォルダーの下にあります。例:

D:\Programacion\mingw64_5.3.0rev0\
D:\Programacion\qt64-ng\qt-5.5.0-x64-mingw510r0-seh\

この場合、QtCreatorを設定するだけです。

ツール>オプション> C++、コンパイラ、追加> MinGW

  • nameにコンパイラバージョンMinGW-5.3 x64を入れます
    これはキットに表示される名前です
  • Compiler pathで、C++コンパイラパスを参照します。この場合、D:\ Programacion\mingw64_5.3.0rev0\bin\g ++。exe

    [〜#〜] abi [〜#〜]でメモを取りますコンパイラで64ビットフラグを使用するために選択されます。それがnamex64を入れる理由です。 32ビットの場合、選択を複製して変更します。

ツール>オプション> C++、デバッガー、追加

  • Pathでデバッガパスを参照します。この場合はD:\ Programacion\mingw64_5.3.0rev0\bin\gdb.exe
  • nameに、バージョンで表示された名前(この場合はGDB 7.10.1)を入れます。
    これはキットに表示される名前です

また、上記に加えて、Qt Frameworkを使用して64ビットプログラムを作成する場合:

[ツール]> [オプション]> [C++]、[Qtバージョン]、[追加]の順にクリックし、qt64-ng binディレクトリにあるqmake.exeを選択します。

  • この場合、D:\ Programacion\qt64-ng\qt-5.5.0-x64-mingw510r0-seh\bin\qmake.exe
  • InnameputQt%{Qt:Version}(qt-5.5.0-x64-mingw510r0-seh)
    [キット]タブに表示される名前です

キットを指定するだけです:

ツール>オプション> C++、キット、追加

  • InnameMinGW-5.3 x64(Qt-5.5)
  • compilerでMinGW-5.3 x64を選択します
  • debuggerでGDB 7.10.1を選択します
  • Qt VersionでQt 5.5.0(qt-5.5.0-x64-mingw510r0-seh)を選択します

そして、CMakeでは、 CMake パスを使用する場合(私はそれを使用します with Ninja )。

注:Ninjaをインストールするには、ninja.exeをmingw-w64\binディレクトリにコピーし、キットのCmake generatorgenerator-> ninjaに変更をプッシュし、Extra generator-> CodeBlocksに変更します。忍者は複数のmakeコマンドを同時に起動するため、コンパイル時間が短縮されます。


1分間の構成の長いテキスト。キットは、プロジェクトをコンパイルするために選択するものであり、希望する数のキットを使用できます(CompilerA x32 + Qt5.x、CompilerB x64 + Qt5.x、CompilerX x64 + Qt4.8など)。

さて、終了する前に、重要なこと。プロジェクト(および開いているプロジェクト)を作成した後、プロジェクトセレクター(Ctrl + 5)で、ビルド環境変数を処理する必要があります。

これらは、テストとデバッグのためにRuns/Buildsを起動するコマンドで追加される変数です。

PATHには、MinGW-w64およびQt64-NGへのパスを配置する必要があります。そして、私の謙虚な意見では、dllのためにこの順序に並べることをお勧めします。例に従ってください:

PATH D:\Programacion\mingw64_5.3.0rev0\bin;D:\Programacion\qt64-ng\qt-5.5.0-x64-mingw510r0-seh\bin;the_other_paths

QtCreatorスナップショットブランチでは、チェックする必要はありませんが、自動的に行われます


ほとんどのC/C++エディターはそのように機能します。エディターをインストールするには、コンパイラーとデバッガーのパスを指定し、エディターから起動するビルド環境変数を指定します(Windowsにある環境変数をオーバーライドします)。

注意:Qt Creatorを64ビットでコンパイルすることをお勧めします。フレームワークで起こるように、Windowsの場合は公式のQt Webサイトで32ビットでのみ利用可能です


代替方法

反対側には、次のものがあります。

  • MSYS2、Linuxのようなツール環境。

すべて同じです。pacmanコマンドを使用してパッケージをダウンロード/インストールするだけで、32ビットバージョンと64ビットバージョンを使用できます。これらのアプリケーションは、MSYS2シェルから起動する必要があります。バイナリ互換性の問題ではなく、パスの問題です。

MSYS2プロジェクトで利用可能なライブラリは、私が説明した最初のツールチェーンで使用できます(MinGW-w64でビルドされるため)。


EDIT:ネーミング、最後の説明を修正し、NinjaのURLとインストールノートを追加しました。

33
ClassicOcean

MSYS2エコシステムを使用するかどうかを決定する必要があります。 MSYS2を使用する場合は、混乱を避けるために、個別にダウンロードしたQtソフトウェアをアンインストールする必要があります。この回答の残りの部分では、MSYS2を使用していると仮定します。

Pacmanを使用して、これらのMSYS2パッケージをインストールできます。

  • mingw-w64-i686-qt
  • mingw-w64-i686-qt-creator
  • mingw-w64-x86_64-qt
  • mingw-w64-x86_64-qt-creator

次に、スタートメニューの適切なショートカットを使用してMinGW-w64 32ビットまたは64ビットシェルを開き、コマンドラインで「qtcreator」を実行します。

他のビルドシステムを使用してソフトウェアをビルドすることもできます。 Qt Creatorではなく、MSYS2でQtアプリケーションを構築するためにCMakeを正常に使用しました。

6
David Grayson

QtcreatorのAutotoolsプラグインを使用する必要がある場合を除き、Explorerから直接起動することもできます。その場合、msys2シェルからプラグインを起動する必要があります(そのため、さまざまな環境変数が正しく設定されます)。

1
Ray Donnelly