64bit Windows環境でQEMUをソースコードからビルドする手順を紹介します。(2019/06/16更新)
必要なもの
- MSYS2 (64bit版 x86_64)
https://msys2.github.io/
手順
すべての作業はMinGW-w64 Win64 Shellで行います。
最初に、ビルドに必要なツールパッケージをインストールします。
$ pacman -S base-devel mingw-w64-x86_64-toolchain git
次はQEMUビルドに必要なパッケージをインストールします。
$ pacman -S mingw-w64-x86_64-glib2 mingw-w64-x86_64-pixman mingw-w64-x86_64-SDL2 mingw-w64-x86_64-capstone
次はQEMU本体のソースコードをダウンロードします。git公式リポジトリからダウンロードします。
$ git clone git://git.qemu-project.org/qemu.git
ソースダウンロード後はqemuフォルダに移動し、必須ライブラリをダウンロードします。
$ cd qemu $ git submodule init $ git submodule update --recursive
次は、どの機能を有効にしてビルドするかの設定を行います。設定できる項目全体を表示するためには以下のコマンドを使います。
$ ./configure --help
今回は最小構成でビルドします。SDL2はライブラリがインストールされていた場合は自動で有効になるので、ライブラリのインストールだけを行います。(もし他の機能を有効にしたいなら必要なライブラリをインストールして、configureコマンドを実行する時に追加してください。)
すべての設定を適用してビルド準備を行います。依存ライブラリのビルド中でwarningが出た場合、処理が止まってしまうのでwarningを無視する–disable-werrorオプションを入れます。[INSTALL_PATH]は自分の環境に合わせて変更してください。
$ ./configure --prefix=[INSTALL_PATH] --disable-werror
最後にQEMU本体をビルドし、[INSTALL_PATH]で設定したパスにインストールします。
$ make install
これでソースコードからQEMUをビルドできました。しかし、MSYSシェルなかで実行する分には問題ないですが、MSYSシェル以外で実行するためには依存DLLファイルをQEMU本体と同じフォルダに置かないといけません。MSYS2のルートフォルダのmingw64フォルダから以下のファイルを先ほどの[INSTALL_PATH]にコピーします。
libbz2-1.dll libgcc_s_seh-1.dll libglib-2.0-0.dll libiconv-2.dll libintl-8.dll libpcre-1.dll libssp-0.dll libwinpthread-1.dll libcapstone.dll libpixman-1-0.dll SDL2.dll
SDL2以外の追加機能を有効にした場合は同じく必要なDLLファイルをコピーしてください。(Dependecy Walkerを使うと簡単に必要なDLLファイルを見つけられます。)