Hello, Windows!

環境 Link to heading

Debian GNU/Linux jessie amd-64 (Linux 3.10.11)

依存パッケージのインストール (Debian) Link to heading

まずは MXE のドキュメント に従って、必要なパッケージをインストールします。

$ apt-get install autoconf automake bash bison bzip2 \
                  cmake flex gettext git g++ intltool \
                  libffi-dev libtool libltdl-dev libssl-dev \
                  libxml-parser-perl make openssl patch perl \
                  pkg-config scons sed unzip wget xz-utils

MXE で Windows 向けの Qt ビルド環境を作成する Link to heading

MXE は Debian のパッケージリポジトリにはありません。

ソースコードが GitHub にありますので git clone して make します。

$ git clone https://github.com/mxe/mxe.git
$ cd mxe && make qt5
(make qt すると Qt4 用の環境ができてしまうので make qt5 しました。)

ビルドにはとても時間がかかります。僕の環境では 1 時間くらいかかりました。

クロスビルドする Link to heading

mxe ディレクトリ以下の実行ファイルやライブラリを使ってビルドします。

手順はパスを通して qmake -> make でできます。ビルドするときに qmake -project は必要ありませんでした。

$ export PATH="/path/to/mxe/usr/bin/:${PATH}"
$ cd /path/to/your/qt-project/
$ /path/to/mxe/usr/i686-pc-mingw32/qt5/bin/qmake && make

(Qt4 をビルドした場合 qmake のパスが異なります)
$ /path/to/mxe/usr/i686-pc-mingw32/qt/bin/qmake && make

ビルドに成功すると release/ 以下に .exe ファイルが生成されます。

$ ls release/*.exe
release/sample.exe
$ file release/sample.exe
release/sample.exe: PE32 executable (GUI) Intel 80386 (stripped to external PDB), for MS Windows

サンプル Link to heading

クロスビルドを試すためのサンプルコードを GitHub に置きました。ウィンドウを表示するだけの簡単なものです。必要であればお使いください。

$ git clone https://github.com/yus4ku/example-qt-mxe

所感 Link to heading

試しに Qt5 で WebKit を使ったアプリを作ってみましたが、MXE 側のライブラリが不足していてビルドできませんでした。make qt すると Qt4 の環境が作成されるあたり、まだ Qt5 は非推奨なのかもしれません。

Qt Creator でも同等のことができそう、且つ Qt 的には王道っぽいので、そっちも近日中に試してみようと思います。