63

Qt4アプリを移行して代わりにQt5を使用したかったのです。MXEがQt5を構築する方法とのいくつかの違いのため、これらの手順は失敗しました。これには、1つの大きなtarballの代わりにモジュール化されたQttarballを使用するという事実が含まれます。

4

4 に答える 4

108

完全な手順は次のとおりです。

  • それを得る:

    git clone https://github.com/mxe/mxe.git
    
  • ビルドの依存関係をインストールする

  • Windows用のQt5をビルドします。

    cd mxe && make qtbase
    

    これにより、最初に依存関係とクロスビルドツールがビルドされます。それはまともなインターネットアクセスを備えた高速マシンで1時間未満かかるはずです。

    Qt 5の新しいモジュラー性により、さまざまな主要なQtコンポーネントが異なるtarballに含まれるようになりました。上で選択しqtbaseたものは、通常のGUIアプリを実行するのに十分な機能を提供するはずです。これは、私自身の(小さい)アプリに必要なすべてです。

    代わりにQt5のすべてをビルドする場合は、make qt5(の代わりにmake qtbase)を実行する必要があります。完了するまでにかなり時間がかかることに注意してください。そのため、追加の機能が必要であることを確認してください。

  • アプリのディレクトリに移動し、QtMakefileジェネレーターツールを実行します。

    <mxe root>/usr/bin/i686-w64-mingw32.static-qmake-qt5
    
  • プロジェクトをビルドします。

    make
    
  • バイナリは./releaseディレクトリにあります。

    wine release/foo.exe
    

いくつかのメモ:

  • これは私の64ビットDebian8で、そしてもちろんWindowsでテストされました。

  • 出力は32ビットの静的実行可能ファイルであり、64ビットのWindowsで適切に機能します。

  • 64ビットの実行可能ファイルが必要な場合は、次のコマンドを使用してQtをビルドします。

    make MXE_TARGETS=x86_64-w64-mingw32.static qtbase
    

    デフォルトMXE_TARGETS値はi686-w64-mingw32.staticです。

于 2013-01-05T09:50:54.690 に答える
8

git checkout コマンドが正しくありません。安定したブランチを取得する必要があります。そうしないと、ビルドに失敗します。

git clone https://github.com/mxe/mxe.git

する必要があります...

git clone -b stable https://github.com/mxe/mxe.git

それだけで、qtbase のビルドに関する問題はすべて修正されましたが、完了時に qt フォルダーは残りませんでした。その後、qt5 ターゲットはあいまいなエラーで失敗します。フォルダーを削除し、安定版をチェックアウトしたところ、問題なく動作しました。

于 2014-09-03T20:17:32.900 に答える