GTK+ — 1. Вступ
Січень 11th, 2009GTK+, або The GIMP Toolkit — міжплатформовий комплект інструментальних засобів з набором віджетів для створення графічних інтерфейсів користувача. Разом із Qt та Motif, є одним із найпопулярніших інструментів для X Window System.
GTK+ було розроблено для GNU Image Manipulation Program (GIMP), растрового графічного редактора, у 1997 році Спенсером Кімбалом (Spencer Kimball) та Петером Матісом (Peter Mattis), членами eXperimental Computing Facility (XCF) в UC Berkeley. Розповсюджується на умовах ліцензії LGPL, є вільним програмним забезпеченням і частиною проекту GNU.
GTK+ включає у себе бібліотеки GTK та GDK, окрім того, має залежність від наступних бібліотек:
Glib — основна бібліотека, що містить різноманітні типи даних, функції для роботи із рядками, механізм для журналювання, повідомлення про помилки, роботи з потоками та інші корисні речі. Бібліотека Pango забезпечує механізм інтернаціоналізації. ATK є бібілотекою інструментів для задоволення потреб людей з різноманітними фізичними вадами (як то поганий зір). GDK — оболонка над низькорівневими функціями для малювання, котрі надаються системою Х Window. Останнім часом значно частина його функціоналу передається бібліотеці Cairo. GdkPixbuf — бібліотека та набір інструментів для завантаження зображень та їхньою попіксельною маніпуляцією. Cairo — бібліотека для створення векторної 2D графіки.
Компіляція програм, що використовують GTK+
Для компіляції програмного забезпечення, яке використовує бібліотеку GTK+, ліпше за все скористатись утилітою pkg-config. Вона повертає метадані з інформацією про встановлені бібліотеки. Простіше кажучи, якщо ми хочемо використовувати конкретну бібліотеку, вона дасть нам необхідні нам бібліотеки та хідери. pkg-config отримує цю інформацію зі спеціальних файлів metadata.
# gcc -o simple simple.c `pkg-config –libs –cflags gtk+-2.0`
Ось, як ми можемо зкомпілювати просту програму. Джерельний код програми складається лише з одного файлу, simple.c.
# pkg-config –cflags gtk+-2.0 \
-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/freetype2 -I/usr/include/libpng12
Цей перелік містить усі необхідні для компіляції файли include.
# pkg-config –libs gtk+-2.0 \
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 \
-lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr \
-lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 \
-lgmodule-2.0 -ldl -lglib-2.0
А цей, усі необхідні бібліотеки.
