Разработчики GTK+ сказали, что нужно компилировать приложения с использованием их библиотек так:
gcc `pkg-config —cflags —libs gtk+-2.0` gtk.c -o gtk
Подробнее о создании самого приложения можно прочитать тут.
Для создания GTK приложения в Eclipse SDK необходимо подключить все необходимые библиотеки. Прежде всего создаём новый проект в Eclipse. После этого идём в Свойства прокта — Project — Properties и переходим в левом столбце в раздел C/C++ General — Path and Symbols
В разделе GNU C добавляем все необходимые пути библиотек. Получить их список можно при помощи команды:
pkg-config —cflags gtk+-2.0
У меня вывод такой:
-pthread -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/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12
После того как добавлены все пути укажем необходимые библиотеки компоновщику. Для этого перейдём в раздел С/С++ Build — Settings — GCC C Linker — Libraries и добавить необходимые библиотеки. Список всех библиотек:
pkg-config —libs gtk+-2.0
-pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng12 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
Мне понадобилась только одна:
После этого сохраняем изменения и тестируем. Вот простой пример приложения с использованием gtk:
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
int main(int argc, char** argv) {
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window), 200, 100);
gtk_window_set_title(GTK_WINDOW(window), «how2.org.ua»);
gtk_widget_show(window);
g_signal_connect(window, «destroy», G_CALLBACK (gtk_main_quit), NULL);
gtk_main();
return (EXIT_SUCCESS);
}
Теперь компилируем — запускаем и получаем вот такое окно: