Qt4アプリを移行して代わりにQt5を使用したかったのです。MXEがQt5を構築する方法とのいくつかの違いのため、これらの手順は失敗しました。これには、1つの大きなtarballの代わりにモジュール化されたQttarballを使用するという事実が含まれます。
4 に答える
完全な手順は次のとおりです。
それを得る:
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
です。
git checkout コマンドが正しくありません。安定したブランチを取得する必要があります。そうしないと、ビルドに失敗します。
git clone https://github.com/mxe/mxe.git
する必要があります...
git clone -b stable https://github.com/mxe/mxe.git
それだけで、qtbase のビルドに関する問題はすべて修正されましたが、完了時に qt フォルダーは残りませんでした。その後、qt5 ターゲットはあいまいなエラーで失敗します。フォルダーを削除し、安定版をチェックアウトしたところ、問題なく動作しました。