いままでのこと
  • Home
  • About
  • Categories
  • Tags
  • Archives

MXE + Qt を使って Linux で Windows GUI アプリをクロスビルドする

Hello, Windows!

環境

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

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

まずは 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 ビルド環境を作成する

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

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

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

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

クロスビルドする

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

サンプル

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

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

所感

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

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

Comments
comments powered by Disqus

  • « Pelican へ移行
  • シグナルをブロックすると fork() 後の子プロセスもブロックされた状態で生成される »

Published

Oct 18, 2013

Category

Computing

Tags

  • Debian 6
  • Linux 8
  • MXE 1
  • Qt 1

SNS

Tweet
このエントリーをはてなブックマークに追加
  • Powered by Pelican. Theme: Elegant by Talha Mansoor