Компиляция приложений GTK на UNIX
Для компиляции приложения GTK необходимо указать компилятору, где найти заголовочные файлы и библиотеки GTK. Это делается с помощью утилиты pkg-config.
Следующий интерактивный сеанс оболочки демонстрирует, как используется pkg-config (фактический вывод на вашей системе может отличаться):
$ pkg-config --cflags gtk4 -pthread -I/usr/include/gtk-4.0 -I/usr/lib64/gtk-4.0/include -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 $ pkg-config --libs gtk4 -pthread -lgtk-4 -lgdk-4 -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 -lgthread-2.0 -lrt -lglib-2.0
Самый простой способ скомпилировать программу — использовать функцию “обратные кавычки” оболочки. Если вы заключите команду в обратные кавычки (не в одинарные кавычки), то её вывод будет подставлен в командную строку перед выполнением. Таким образом, для компиляции GTK Hello, World, вам нужно ввести следующее:
$ cc `pkg-config --cflags gtk4` hello.c -o hello `pkg-config --libs gtk4`
Устаревшие функции GTK аннотированы, чтобы компилятор генерировал предупреждения при их использовании (например, с gcc вам нужно использовать опцию -Wdeprecated-declarations). Если эти предупреждения проблематичны, их можно отключить, определив препроцессорную константу GDK_DISABLE_DEPRECATION_WARNINGS, используя опцию командной строки -DGDK_DISABLE_DEPRECATION_WARNINGS.
Аннотации устаревания GTK имеют версионность; определив макросы GDK_VERSION_MIN_REQUIRED и GDK_VERSION_MAX_ALLOWED, вы можете указать диапазон версий GTK, API которых вы хотите использовать. API, которые устарели до или были введены после этого диапазона, сгенерируют предупреждения компилятора.
Вот как вы бы скомпилировали hello.c, если хотите разрешить использование символов, которые не были устаревшими в 4.2:
$ cc `pkg-config --cflags gtk4` -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_4_2 hello.c -o hello `pkg-config --libs gtk4`
А вот как вы бы скомпилировали hello.c, если не хотите использовать какие-либо символы, которые были введены после 4.2:
$ cc `pkg-config --cflags gtk4` -DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_4_2 hello.c -o hello `pkg-config --libs gtk4`
Старый механизм устаревания, который полностью скрывает устаревшие интерфейсы от компилятора с помощью препроцессорной константы GTK_DISABLE_DEPRECATED, всё ещё используется для устаревших макросов, значений перечислений и т. д. Для обнаружения использования этих элементов в вашем коде используйте опцию командной строки -DGTK_DISABLE_DEPRECATED. Существуют аналогичные константы GDK_DISABLE_DEPRECATED, GDK_PIXBUF_DISABLE_DEPRECATED и G_DISABLE_DEPRECATED для GDK, GdkPixbuf и GLib.
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/gtk-compiling.html