08 December 2007

Eclipse CDTでGtk+2.0のビルド

普段利用しているEclipseでGtk+2.0を用いるプロジェクトのビルド方法
(環境はFedora 8)

GCCのインストール (インストールされていない場合)

gccのCコンパイラーとC++コンパイラーがインストールされていない場合は、インストールする


[root@localhost ~]# yum install gcc

[root@localhost ~]# yum install gcc-c++

Eclipse と CDTのインストール (インストールされていない場合)

Eclispeはプロジェクトのページ(http://www.eclipse.org/)の Downloads - セクションの「Eclipse IDE for C/C++ Developers」をダウンロードして解凍


[root@localhost ~]# tar -xvf eclipse-cpp-europa-fall2-linux-gtk.tar.gz

解凍したディレクトリを、(たとえば) /usr/lib に移動する。(インストール操作は必要ない)

CDT(C/C++ development tools)のインストール

Eclipseを起動して、Helpメニュー → Software Updates → Find and Install のダイアログを開き、Search for new features to install を選択すると、検索するサイト一覧が出る。
「Europa Discovery Site」にチェックを入れてインストールパッケージを検索する。

20071208-eclipse-featureinstall.png

インストールパッケージが見つからない場合は、Eclipse CDTプロジェクトのページ(http://www.eclipse.org/cdt/)からファイルをダウンロードして、Eclipseのディレクトリに放り込めばインストール完了。

Eclipseのバージョンは 3.3.1.1 (日本語パッチは公開されていない)、CDTのバージョンは 4.0.2 がインストールされているものとして以下の記述に進む。

プロジェクトの生成

CDTの以前のバージョンでは、プロジェクト生成時に 「Standard Make C++ Project」と「Managed Make C++ Project」の選択をする必要性があったが、Version 4では選択肢がなくなり、デフォルトで「Managed Make」になっている。

File メニュー → New → C++ Project (または C Project) を実行

20071208-eclipse-project-new.png

プロジェクト名(プロジェクトを格納するフォルダ名にもなる)を適当につけて実行

20071208-eclipse-project-new1.png

ソースファイルの追加と編集

プロジェクトにC++のソースファイルを追加する。ツールバーの「New C/C++ Source File」ボタンを使うか、File メニュー → New → C Source Fie を実行すると、ファイル名指定のダイアログが出るので、適当なファイル名(たとえば testGtk.cpp)を入力して実行

20071208-eclipse-add-cfile.png

生成された ソースファイル(TestGtk.cpp)を編集する
今回は、Gtk+2.0のビルド環境のテストのため、次のようなサンプルコードを入力した


#include <gtk/gtk.h>

gint main(gint argc, gchar* argv[])
{
GtkWidget* window;
GtkWidget* label;

/* 初期化 */
gtk_set_locale();
gtk_init(&argc, &argv);
gtk_rc_parse("./gtkrc");

window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window),"destroy",
GTK_SIGNAL_FUNC(gtk_main_quit),window);

/* ウィジェットとコンテナの隙間を規定 */
gtk_container_border_width(GTK_CONTAINER(window),50);

label = gtk_label_new("Hello World!");

gtk_container_add(GTK_CONTAINER(window),label);
gtk_widget_show(label);
gtk_widget_show(window);

gtk_main();
}

20071208-eclipse-edit-cfile.png

インクルード パスと、ライブラリの設定

インクルード ファイルのパスと、必要なライブラリは pkg-config コマンドで出力させ


[root@localhost ~]# pkg-config gtk+-2.0 --libs --cflags
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo
-I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lgtk-x11-2.0
-lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0
-lgmodule-2.0 -ldl -lglib-2.0

Project メニュー → Properties ダイアログボックスを開いて、
C/C++ General → Paths and Symbols → Includes に、インクルードファイルのパスをすべて入力する。

20071208-eclipse-include-path.png

また、C/C++ Build → Settings → GCC C++ Linker → Librarys に必要なライブラリをすべて入力する。

20071208-eclipse-lib-path.png

まれに、デフォルトのリンクオプションとして -shared が付いている場合があるので、 GCC C++ Linker → Shared Library Settings の Shared がチェックされいないか確認する。

ビルド

Project メニュー → Build All すれば、問題なくビルドできるはずだ

Managed make プロジェクトのため、makefile, objects,mk, sources.mk などは一切編集する必要は無い。(編集しても、ビルド開始時に無効化されてしまう)