Просто успешно скомпилировал ваш код после выполнения следующих действий:
Добавьте следующие два:
#include <glib/gerror.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
И скомпилировать с:
gcc `pkg-config --cflags --libs gtk+-2.0` test.c -o test
pkg-config дает следующий вывод:
-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 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
Так что вам нужно связать со следующими библиотеками:
- GTK-x11-2.0
- GDK-x11-2.0
- ака-1,0
- Gio-2,0 * * один тысяча двадцать-одна
- pangoft2-1.0
- gdk_pixbuf-2,0
- pangocairo-1,0
- каир
- Панго-1,0
- FreeType
- Fontconfig
- GObject-2,0
- GModule-2,0
- бойкий-2,0
Вы можете пропустить некоторые из них, если хотите попробовать, просто начните с gdk_pixbuf-2.0 и посмотрите, не получите ли вы еще неопределенные ссылки при ссылке.
Только что попробовал, кажется, что для вашего кода достаточно gtk-x11-2.0 и gdk_pixbuf-2.0.
Быстрый Google, похоже, показывает, что в окне настроек вашего проекта у вас должна быть вкладка компоновщика, где вы можете перечислить все библиотеки, которые должны быть связаны с вашим кодом. Если вы не используете linux / unix, вам может потребоваться другая библиотека gtk, поскольку gtk-x11-2.0 специфична для системы X Window.