gaim-japanese (srpm-0.59.8-1) | 2003-05-10 23:36 |
proc-rpmnew (0.2) | 2009-05-15 02:49 |
UnofficialVine (anjuta-srpm-1.0.2-0uv1) | 2003-07-25 21:30 |
w2l-tools (0.1) | 2004-03-25 22:08 |
この文書では、Linux上でMicrosoft Windows向け実行ファイルをビルドするための環境構築について解説します。
関連文書:Info/Linux上でのMS-Windows向けGTKアプリのビルド
Info/Linux上でのMS-Windows向けGTKアプリのビルドにある方法でも良いですが、SDL(Simple DirectMedia Layer)のサイトにあるbuild-cross.shを修正して利用するとファイルの取得から、ビルド、インストールまでを一気に実行できます。ただし、インストール先によってはroot権限が必要になります。
まず、build-cross.shをダウンロードし、適当な場所に保存します。ここでは、~/build-crossに保存したと仮定します。
次にMinGW - HomeのDownloadページを参考にスクリプトの最初の方にあるGCC_VERSION、BINUTILS、MINGW、W32APIの値を修正します。2005/01/26時点では、以下の様に修正する必要がありました。
GCC_VERSION=3.4.2-20040916-1 BINUTILS=binutils-2.15.91-20040904-1 MINGW=mingw-runtime-3.7 W32API=w32api-3.2
また、デフォルトではインストール先が、/usr/local/cross-toolsになっています。インストール先を変更したい場合は、PREFIXの値を修正する必要があります。例えば、/opt/cross-toolsにインストールする場合は次の様に修正してください。
PREFIX=/opt/cross-tools
ただし、インストール先を変更した場合は後述のcross-configure.shとcross-make.shも修正してやる必要があります。
さて、スクリプトの修正が済んだらいよいよ必要なファイルの取得、ビルド、インストールを行います。
例:
$ cd ~/build-cross $ su $ sh build-cross.sh
途中、エラーで終了した場合はログファイルの場所を教えてもらえますのでそのファイルを参考にエラーの原因を排除して再度スクリプトを実行してください。
SDL(Simple DirectMedia Layer)のサイトでは、ビルド済みのmingw32-linux-x86-glibc-2.3.tar.gzなども配布しています。クロスビルド環境をインストールしたいディレクトリの親ディレクトリで展開してください。
前項の作業が成功したら、cross-configure.shとcross-make.shをダウンロードして適当な場所に保存してください。前項でインストール先を変更していた場合は、それぞれPREFIXの値を修正する必要があります。
これらは、Windows向けのビルドの際にconfigureやmakeの代わりに実行する物です。実行権限を付けてPATHを通しおくか、shの引数にフルパスで指定するか判断はお任せします。
#ref(hello-win.tar.bz2)
上記ファイルを展開してできたディレクトリに移動し、以下の様にしてください。
$ sh インストールした場所/cross-make.sh
hello.exeというファイルが作成されるのでWindowsにコピーして実行できれば、OKです。
以上でWin32APIを使ったプログラムをビルドする環境は整いましたが、クロスビルド環境の構築する醍醐味はやはりLinux向けアプリケーションの移植ではないでしょうか。この節では、Windows向けGtk+2アプリケーションをビルドするために必要なパッケージのインストールについて解説します。
Tor Lillqvist--GTK+ (not GIMP) for Windows--Downloadsから、以下のファイルをダウンロードします。
これらのファイルを以下の様に /usr/local/cross-tools で展開します。(インストールディレクトリを変更した場合は適宜に読みかえてください。
$ su # unzip atk-1.8.0.zip -d /usr/local/cross-tools/i386-mingw32msvc # unzip atk-dev-1.8.0.zip -d /usr/local/cross-tools/i386-mingw32msvc ...
GnuWin32が配布している以下のファイルをダウンロードします。
これらもTor氏のファイルと同様に展開してください。
なお、libpng,jpeg,tiffがzlibに依存するため、zlib Home SiteからZlib 1.2.1をダウンロードして同様に展開してください。
ftp://ftp.zlatkovic.com/pub/libxml/ から以下のファイルをダウンロードしてください。
そしてこれらを次の様に展開、インストールします。
$ unzip libxml2-2.6.17.win32.zip $ unzip libxslt-1.1.12+.win32.zip $ su # cp -R libxml2-2.6.17.win32/* /usr/local/cross-toools/i386-mingw32msvc # cp -R libxslt-1.1.12.win32/* /usr/local/cross-toools/i386-mingw32msvc
以下のスクリプトを /usr/local/cross-toools/i386-mingw32msvc/lib/pkgconfig で実行してください。(当然、インストール先を変えていた場合は、TARGETの値を変更する必要があります。)
#!/bin/sh TARGET=/usr/local/cross-toools/i386-mingw32msvc for f in *.pc ; do if grep 'prefix=/target' $f >/dev/null 2>&1 ; then cat $f | sed s+^prefix=/target+prefix=$TARGET+ > $f.tmp mv $f.tmp $f fi done
以上で環境構築は完了です。
GIMP - Windows installersから、Gtk+2ランタイムを取得し、Windowsへインストールしてください。記事就筆時点での安定版は、version 2.4.14です。
#ref(scribble.tar.bz2)
GTK+ 2.0 Tutorialから、拝借したプログラムから、サンプルを作成しました。上記ファイルをダウンロードし展開してできたディレクトリで cross-make.shを実行してください。無事にscribble.exeという実行ファイルが作成されたら、Windowsにコピーし実行できるか確かめてください。
cross-configure.shとcross-make.shにそれぞれ、
export PKG_CONFIG_PATH="/usr/local/cross-tools/i386-mingw32msvc/lib/pkgconfig"
を追加しておいた方が便利かと思います。