Для создания
минимального проекта используется
среда программирования Geany 1.2.3, под
управлением Fedora 18 Linux и KDE 4.10.2.
1. Подготовка
среды Geany
Чтобы приступить
к написанию кода нам необходимо настроить
среду Geany на компиляцию и сборку
проекта. Наш проект это один файл main.c.
Настройку среды начнем с знакомства с
программой pkg-config.
Например, если мы хотим скомпилировать
GTK+ приложение, мы должны показать
компилятору, где искать GTK+ заголовочные
файлы и библиотеки, то на помощь к нам
придет программа pkg-config. Откройте
терминал Konsole и введите следующие
две команды:
1) Первая команда
отобразит все GTK+ заголовочные файлы
> pkg-config
--cflags gtk+-3.0
Результат
выполнения:
-pthread
-I/usr/include/gtk-3.0 -I/usr/include/atk-1.0
-I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0
-I/usr/include/gio-unix-2.0/ -I/usr/include/cairo
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0
-I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz
-I/usr/include/freetype2 -I/usr/include/pixman-1
-I/usr/include/libpng15 -I/usr/include/libdrm
2) Вторая команда
отобразить все GTK+ библиотеки
> pkg-config --libs
gtk+-3.0
Результат
выполнения:
-lgtk-3 -lgdk-3
-latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject
-lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0
Следующим шагом
будет создание файла main.c. Откройте
среду Geany и выберите пункт меню File
> New, этим действием мы создадим
безымянный файл проекта. Сохраните файл
проекта под именем main.c, для этого
выберите пункт меню File > Save As.
Теперь в настройках
проекта мы пропишем необходимые команды
компиляции и сборки. Выберите пункт
меню Build > Set Build Commands, откроется
окно установки команд компиляции и
сборки (смотрите рисунок 1). В поле с
именем Compile нужно написать следующую
команду:
gcc `pkg-config
--cflags gtk+-3.0` -c "%f"
где %f , это
параметр, вместо которого среда Geany
подставит имя нашего файла main.c,
gcc,
это название компилятора который
скомпилирует наш файл. Опция
-c, это опция
говорит компилятору,
что файл нужно только скомпилировать.
Последнее,
это pkg-config --cflags gtk+-3.0,
заголовочные
файлы библиотеки GTK+.
На этом этапе мы
будем получать только объектный файл,
в нашем случае main.o.
Об опциях
компилятора gcc читаем на сайте Opennet.ru.
О параметрах
среды Geany читаем на сайте Geany.org.
В
поле с именем Build
нужно написать следующую команду:
gcc `pkg-config
--cflags --libs gtk+-3.0` -o "%e" "%f"
Выше указаная строчка сборки проекта не работает у меня Ubuntu 15.04 и Geany 1.24.1 и поэтому вы должны получить ряд сообщение при сборки проекта:
так что ее нужно заменить на
gcc "%f" `pkg-config --cflags --libs gtk+-3.0` -o "%e"
указав исходный файл проекта перед указанием необходимых библиотек для сборки проекта (ссылка по теме: http://stackoverflow.com/questions/11546877/compiling-and-linking-gtk-3-with-c-project-on-ubuntu).
Выше указаная строчка сборки проекта не работает у меня Ubuntu 15.04 и Geany 1.24.1 и поэтому вы должны получить ряд сообщение при сборки проекта:
undefined reference to `gtk_init'
undefined reference to `gtk_window_new'
undefined reference to `gtk_main_quit'
undefined reference to `g_signal_connect_data'
undefined reference to `gtk_widget_show'
undefined reference to `gtk_main'
так что ее нужно заменить на
gcc "%f" `pkg-config --cflags --libs gtk+-3.0` -o "%e"
указав исходный файл проекта перед указанием необходимых библиотек для сборки проекта (ссылка по теме: http://stackoverflow.com/questions/11546877/compiling-and-linking-gtk-3-with-c-project-on-ubuntu).
где
%f, параметр среды Geany, который
мы разобрали выше по тексту, %e,
тоже подстановка в командном пути, среда
Geany подставит имя файла без пути и
расширения, то есть подставится main.
Опция -o, говорит компилятору, что
весь вывод нужно поместить в файл main.
Последнее, это pkg-config --cflags --libs gtk+-3.0,
подстановка заголовочных файлов и
библиотек GTK+. На этом этапе мы получим
исполняемый файл GTK+ приложения.
Рисунок
1. Установка команд компиляции и сборки
в среде Geany
Дополнение к
посту:
Если pkg-config
сообщает, что пакет gtk+-3.0 не найден, то
нам необходимо установить пакет для
разработчика, который называется
gtk3-devel для Fedora 20. В Ubuntu 15.04 пакет называется libgtk-3-dev.
Если выдается
сообщение, что gcc не найден, то нам
необходимо его установить при помощи
программы Apper.
Так, теперь
окно, установки параметров сборки
проекта в среде Geany, можно закрыть.
Переходим к написанию кода.
2. Написание
кода GTK+ приложения
В файле
main.c, который мы создали и сохранили,
нам необходимо написать следующие:
#include <gtk/gtk.h> int main(int argc, char **argv) { GtkWidget *window = NULL; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(window,
"destroy",
G_CALLBACK(gtk_main_quit),
NULL);
gtk_widget_show(window); gtk_main(); return 0; }
syntax highlighted by Code2HTML, v. 0.9.1
1) Строчкой
#include <gtk/gtk.h>
мы подключаем
заголовочный файл библиотеки GTK+.
2)
Строчкой int main(int argc, char **argv) { }
главная функция,
где { }-
открывающая и закрывающая фигурные
скобки главной функции программы.
3)
Внутри главной функции программы,
строчкой GtkWidget
*window = NULL,
мы
определили будущий указатель на GTK
объект, которой будет являться главным
окном программы. Все
GTK
объекты, будь то окно или кнопка (другими
словами «виджеты») ,
должны быть определены как указатель
на базовый класс GtkWidget.
4)
Строчкой gtk_init(&argc,
&argv),
мы
инициализируем GTK+.
5)
Строчкой
window
= gtk_window_new(GTK_WINDOW_TOPLEVEL),
мы
выделяем память под GTK
объект, в нашем случае обычное окно (тип
окна: GTK_WINDOW_TOPLEVEL).
6) Строчка g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL), когда окно уничтожается, например по нажатию на кнопку закрытия окна, то вызывается функция gtk_main_quit, которая прервет главный цикл обработки сообщений начатый функцией gtk_main.
7) Строчкой gtk_widget_show(window), мы покажем наше окно.
7) Строчкой gtk_widget_show(window), мы покажем наше окно.
8)
Строчкой gtk_main(),
мы
передаем управление над
программой библиотеке
GTK.
Теперь
нам осталось только построить проект.
Для этого выберите пункт меню Build
> Build
или нажмите клавишу F9.
Ниже,
на рисунке 2, можно посмотреть результат
нашей
работы.
Рисунок
2. Минимальное GTK+ приложение
Комментариев нет:
Отправить комментарий