![]() |
![]() |
![]() |
![]() |
Before you can compile the GTK widget toolkit, you need to have various other tools and libraries installed on your system. Dependencies of GTK have their own build systems, so you will need to refer to their own installation instructions.
A particular important tool used by GTK to find its dependencies
is pkg-config
.
pkg-config
is a tool for tracking the compilation flags needed for libraries
that are used by the GTK libraries. (For each library, a small
.pc
text file is installed in a standard
location that contains the compilation flags needed for that
library along with version number information.)
Some of the libraries that GTK depends on are maintained by the GTK team: GLib, GdkPixbuf, Pango, and GObject Introspection. Other libraries are maintained separately.
The GLib library provides core non-graphical functionality such as high level data types, Unicode manipulation, and an object and type system to C programs. It is available from here.
The GdkPixbuf library provides facilities for loading images in a variety of file formats. It is available here.
Pango is a library for internationalized text handling. It is available here.
GObject Introspection is a framework for making introspection data available to language bindings. It is available here.
The GNU
libiconv library is needed to build GLib if your
system doesn’t have the iconv()
function for doing conversion
between character encodings. Most modern systems should have
iconv()
.
The libintl library from the
GNU
gettext package is needed if your system doesn’t have
the gettext()
functionality for handling message translation
databases.
The libraries from the X window system are needed to build Pango and GTK. You should already have these installed on your system, but it’s possible that you’ll need to install the development environment for these libraries that your operating system vendor provides.
The fontconfig library provides Pango with a standard way of locating fonts and matching them against font names.
Cairo is a graphics library that supports vector graphics and image compositing. Both Pango and GTK use Cairo for drawing.
libepoxy is a library that abstracts the differences between different OpenGL libraries. GTK uses it for cross-platform GL support and for its own drawing.
Graphene is a library that provides vector and matrix types for 2D and 3D transformations. GTK uses it internally for drawing.
The Wayland libraries are needed to build GTK with the Wayland backend.
The
shared-mime-info
package is not a hard dependency of GTK, but it contains
definitions for mime types that are used by GIO and,
indirectly, by GTK. gdk-pixbuf will use GIO for mime type
detection if possible. For this to work, shared-mime-info
needs to be installed and XDG_DATA_DIRS
set
accordingly at configure time. Otherwise, gdk-pixbuf falls
back to its built-in mime type detection.