【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

MSYSでGtk#をビルド

MSYSでのGTK+のビルドと、コマンドライン引数の問題が解決したので、ようやくGtk#のビルドに成功しました。

今回は.NET Framework 4.0をバックエンドとして動かすため、Monoは使用しません。

MSYSが勝手に引数を変換しないように細工した.NET関連のラッパーを用意しました。ビルドにはmsys-core-devが必要です。

$ mingw-get install msys-core-dev
$ make
$ make install

Gtk#のソースをダウンロードして展開します。

$ curl -LO http://download.mono-project.com/sources/gtk-sharp212/gtk-sharp-2.12.10.tar.bz2
$ tar xvf gtk-sharp-2.12.10.tar.bz2
$ cd gtk-sharp-2.12.10

configureがCygwinを想定しているため、-mno-cygwinを取り除くパッチを当てます。今回使用したGLib 2.32.2は想定されているものより新しいらしく、ヘッダがエラーになるのでパッチを当てます。

ビルドします。make installすると動作がおかしくなるので、敢えてしません。

$ ./configure
$ make

インストールでおかしくなる原因は未調査です。インストールせずに単体では問題なく動くため、ビルド自体は正常にできているようです。今後の課題とします。

配布する際のランタイムとしては、Gtk#のバイナリ配布物をインストールすれば良いので、差し当たって問題はありません。

おわりに

Gtk#の開発を始めようと思い立ちましたが、使い方がよく分かりません。ソースを読みながら考える必要がありそうです。また、問題が発生したときの担保としても、自分で調べられる環境は必要です。今までMonoを使って問題が発生したとき、どうやって調査して良いのか分からず途方に暮れた経験があります。今回はMonoではなく.NETを使用するため、デバッグはライブラリレベルで済みそうです。

以上の理由でGTK+とGtk#を、普段使用しているMSYSでビルドすることにしました。しかし細かい問題が色々あったため、これだけでGWを使い切ってしまいました。実際に開発するのは今後の課題です。