Table of Contents
gtkmmを使う大きな利点のひとつは、クロスプラットフォームであるということです。あるプラットフォーム上、例えばGNU/Linuxで作成されたgtkmmプログラムは、ふつう、ソースに多少の変更を行うだけでWindowsに移植できます。この逆も同様です。
現在のところ、gtkmmはWindows上のMingW/GCC3.2 コンパイラだけで動作します。Microsoftが Visual Studioのコンパイラで標準C++規格を完全サポートするようにアップグレードしない限り、これがすぐに変化することはないでしょう。gtkmmと最新のMicrosoft C++コンパイラについての情報はメーリングリストにあるかもしれません。
MingWのインストールについては書くのはこの文書の範囲を越えてしまいますが、それほど難しくありません。しかし、Dev-C++という名の、とてもよいGPLのWindows用C++ IDEがあり、これがお手軽なWindowsインストーラを備えていてIDEとMingW/GCC3.2の両方をインストールします。私たちはこちらを推奨します。これからステップごとにgtkmmをインストールし、Dev-C++をgtkmm開発環境になるように適切にセットアップする方法を示します。以下のやり方はDev-C++バージョン4.9.8.0かそれ以上でうまく行くはずです。また、コマンドラインでコンパイラを使うのを好む人向けに、この章の最後のセクションでcygwinでの使用法を解説します。
GTK+やgtkmmのライブラリをインストールする前に、Dev-C++をインストールしてテストすることを強く推奨します。ここではDev-C++のディレクトリに全てのライブラリをインストールするからです。次のステップに進む前に、Dev-C++で簡単なC++プログラムをコンパイルし、実行できることを確かめてください。例えば、簡単なHello Worldプログラムを試してみてください。
| Note | |
|---|---|
現在のDev-C++(バージョン4.9.8.0)はスペースの入ったディレクトリにインストールしないほうがいいようです。Dev-C++を"Program Files"ディレクトリにインストールすると、後半のインクルードヘッダとライブラリを探索する段階で問題が起こる可能性があります。 |
gtkmmのWindowsインストーラは、以下の依存パッケージのインストールを要求します。
GTK+ 2.x
gtkmmをインストールする前に最新のGTK+ 2.xのインストールが必要です。最新のWindowsインストーラはGlade/Gtk+ for Win32で見つかります。このインストーラがGTK+ 2.xの動作に必要な全ての依存パッケージを適切にインストールしてくれます。
Gtk+/Win32開発環境をダウンロードし、インストールしてください。これにはランタイム、開発ライブラリ、ドキュメント、Gladeが含まれます。インストーラを実行してデフォルトディレクトリにインストールしてください。
さて、gtkmmをインストールするための準備が整いました。gtkmmのウェブサイトにあるダウンロードページからインストーラへのリンクを見つけてください。gtkmmのWindowsインストーラには開発ライブラリと実行時ランタイムの両方が含まれます。
Dev-C++をgtkmmのIDEとして使うために、gtkmmをDev-C++のベースディレクトリ(つまり、D:\dev-cpp)にインストールすることを強く推奨します。こうすることでインクルードヘッダとライブラリのディレクトリをDev-C++に指定するのが簡単になります。
これでWin32 gtkmmのバイナリを実行できるようになったはずです。注意: 古いバージョンのWindowsではリブートが必要な場合があります。インストーラの行うPATHへの変更が効果を及ぼす前だからです。
これからプロジェクトオプションを設定し、Dev-C++による初めてのgtkmmプロジェクトを作成できるようにします。
まず、Dev-C++にMingW/GCC3.2を呼び出すときにインクルードするためのファイルとライブラリを知らせる必要があります。どのような引数がGCCに渡されるのを知るために、コマンドプロンプトを開いて以下にようにタイプしてください:
pkg-config --cflags gtkmm-2.4
pkg-configコマンドが見つからない場合、Dev-C++をインストールしたところにある、binディレクトリに移動して上のコマンドを実行ください。gtkmmをインストールした場所によりますが、以下のものと似たような出力が得られるはずです:
-Id:/dev-c++/include/gtkmm-2.4
-Id:/dev-c++/lib/gtkmm-2.4/include
-Id:/dev-c++/include/gtk-2.0
-Id:/dev-c++/lib/sigc++-2.0/include
-Id:/dev-c++/include/sigc++-2.0
-Id:/dev-c++/include/glib-2.0
-Id:/dev-c++/lib/glib-2.0/include
-Id:/dev-c++/lib/gtk-2.0/include
-Id:/dev-c++/include/pango-1.0 -Id:/dev-c++/include/atk-1.0
-Ld:/dev-c++/lib
次のステップはライブラリのリストを取得します。以下のコマンドを実行してください:
pkg-config --libs gtkmm-2.4
結果はこれに似たものになるはずです:
-lgtkmm-2.4 -lgdkmm-2.4 -latkmm-1.0
-lgtk-win32-2.0 -lpangomm-1.4 -lglibmm-2.4 -lsigc-2.0
-lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0
-lgdi32 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
-lintl -liconv
さて、新しいプロジェクトを作成してください。このプロジェクトをgtkmmが動作するように変更します。作成できたら、メニューのProject Optionsを選択し、Parametersタブの下で先ほど得た情報を入力します: C++コンパイラのAdditional commandline optionsの中に--cflagsオプションで得られた、ヘッダとライブラリのディレクトリをペーストしてください(オプションは-Iか-Lのどちらかが前についています)。
次はリンカにインクルードされるライブラリを伝えます。--libsで得られたオプションをLinkerのAdditional commandline optionsのところにペーストしてください(オプションは前に-lがついています)。
お疲れさまでした!これでDev-C++のプロジェクトがgtkmmを使えるようになりました。チュートリアルにあるコード例をいくつかコンパイルしてみてください。