Download for Windows (32-bit)

Requirements

Packages

You will need the GLib, cairo, Pango, ATK, gdk-pixbuf and GTK+ developer packages to build software against GTK+. To run GTK+ programs you will also need the gettext-runtime, fontconfig, freetype, expat, libpng and zlib packages.

The packages here are for people who develop software that uses GTK+. This page is not intended directly for end-users. It is expected that people who build installers for GTK+ applications for Windows bundle GTK+ with them.

These packages are not for developing or running programs that use the Cygwin Unix emulation environment. Cygwin has GTK+ packages available directly in its installer which you should use. Note that the Cygwin GTK+ uses the X11 backend, so you will need to also run an X11 server then when you run GTK+ programs on Cygwin, but presumably that is what Cygwin users want.

You are welcome to redistribute GTK+ binaries, including applications that bundle them, on other web sites, CD-ROM, and other media. You don't have to ask for permission. That's one of the points of Free Software. One important thing that the GNU licenses require is that you must also redistribute the source code. This usually means at least the gettext, GLib, GTK+, Pango and Atk sources.

What toolchain to use?

The most natural toolchain to use together with these packages would probably be the GNU compiler and other utilities. When targeting Windows, that combination is known as MinGW. Using Cygwin tools to build non-Cygwin Windows binaries is not recommended unless you are very careful and look out for mixups.

It is possible to use these packages also with Microsoft's compiler. However, the DLLs here use the msvcrt.dll run-time library. This means that also applications that use the DLLs should preferably use the msvcrt.dll run-time. Specifically, this means that you should not use newer versions of the Microsoft compiler than Visual C++ 6 without knowing exactly what you are doing.

Which Windows versions?

The current GTK+ stack uses APIs that are available only on Windows 2000 or later. Long obsolete versions of GTK+ did run on Win9x and NT 4, too.

Tutorial

An installation and usage tutorial is available for beginners.

Downloads

There are three types of downloads below. Run-time provide only the DLLs and other files used you will need to run a GTK+-using application. Dev packages provide include files, import libraries, documentation and additional tools, and also for reference the script used to build the component in question. In case patches have been applied to the upstream sources before building, these are inline in the build script. Source packages provide the source code for the component in question. In most cases, this is simply the pristine upstream source release tarball, possibly copied to the same server as the binaries to satisfy the license.

If you want to repackage the necessary run-time files together with your application into an installer, you can choose to leave out for instance message catalogs for languages that your application isn't localised to anyway.

GTK+ 3.x

GTK+ 3.6.4 is the current maintained version.

All-in-one bundles

If you find choosing, downloading and unpacking the individual zip archives below a chore, there is an all-in-one bundle of the GTK+ stack including 3rd-party dependencies. The bundle contains both run-time and developer files. Many of the developer files are relatively irrelevant. If you intend to redistribute the GTK+ run-time, you can use this content list to figure out which files you can leave out yourself. A new bundle will ideally be provided here whenever one of the member packages has been updated.

GTK+ individual packages

Package Version Downloads
GLib 2.34.3 Run-time Dev Sources
ATK 2.6.0 Run-time Dev Sources
Pango 1.30.1 Run-time Dev Sources
gdk-pixbuf 2.26.5 Run-time Dev Sources
GTK+ 3.6.4 Run-time Dev Sources

Required third party dependencies

The run-time packages here are required by the GTK+ stack.

Package Version Downloads
zlib 1.2.8 Run-time Sources
cairo 1.10.2 Run-time Dev Sources
libpng 1.5.14 Run-time Dev Sources
libxml2 2.8.0 Run-time Dev Sources
Freetype 2.4.11 Run-time Dev Sources
Fontconfig 2.10.2 Run-time Dev Sources
libiconv 1.13.1 Run-time Dev Sources
gettext-runtime 0.18.2.1 Run-time Dev Sources

Other third party software

These packages are not needed to run software that uses just GTK+, or to develop such software. These packages are used when building and running more complex applications.

Package Version Downloads
rsvg 2.36.4 Runtime Dev Sources
croco 0.6.8 Runtime Dev Sources
pixman 0.26.0 Runtime Dev Sources
pkg-config 0.28 Tool Dev Sources

GTK+ 2.x

GTK+ 2.24 is the current maintained version.

All-in-one bundles

If you find choosing, downloading and unpacking the individual zip archives below a chore, there is an all-in-one bundle of the GTK+ stack including 3rd-party dependencies. The bundle contains both run-time and developer files. Many of the developer files are relatively irrelevant. If you intend to redistribute the GTK+ run-time, you need to figure out which files you can leave out yourself. A new bundle will ideally be provided here whenever one of the member packages has been updated.

GTK+ individual packages

Package Version Downloads
GLib 2.28.8 Run-time Dev Sources
ATK 1.32.0 Run-time Dev Sources
Pango 1.29.4 Run-time Dev Sources
gdk-pixbuf 2.24.0 Run-time Dev Sources
GTK+ 2.24.10 Run-time Dev Sources

Required third party dependencies

The run-time packages here are required by the GTK+ stack.

Package Version Downloads
zlib 1.2.5 Run-time Dev Sources
cairo 1.10.2 Run-time Dev Sources
libpng 1.4.3 Run-time Dev
Freetype 2.4.2 Run-time Dev Sources
Fontconfig 2.8.0 Run-time Dev Sources
expat 2.0.1 Run-time Dev
gettext-runtime 0.18.1.1 Run-time Dev Sources

Other third party software

These packages are not needed to run software that uses just GTK+, or to develop such software. These packages are used when building and running more complex applications.

Package Version Downloads
pixman 0.24.0 Dev Sources
pkg-config 0.26 Tool Dev Sources
gettext-tools 0.18.1.1 Dev Sources

About pixman

This is a static build of pixman library. It is linked into the cairo DLL and there is no separate pixman run-time package.

About libpng

This libpng build package provides libpng14-14.dll. This package is built by me (Tor Lillqvist). Back in history the GTK+ stack was built against the gnuwin32 build of libpng. Confusingly, gnuwin32's older builds of libpng provided libpng13.dll, and their newer builds provided libpng12.dll. I don't know whether these builds actually are binary compatible even if the DLL name was different. To be safe, never rename DLLs.

About zlib

This is the compression library used by glib and libpng. The above is just repackaged upstream DLL, slightly fixed headers, and import libraries. It provides zlib1.dll.

About pkg-config

This program is useful for Makefiles and configure scripts and extensively used in building software according to the GTK+ and GNOME conventions using autotools. It uses a database specifying inter-dependencies among software packages. It is used to get the compile and link flags needed when building software using libraries that provide pkg-config data. It requires GLib.

About freetype and fontconfig

These libraries are used by cairo and by Pango. They provide an alternative font backend. In a normal GTK+ application on Windows their functionality won't actually be used, though. GIMP is an exception, GIMP's text tool uses freetype and fontconfig APIs.

About gettext-runtime

The GNU internationalization library. All of the GTK+ stack uses it. The DLL uses the traditional name intl.dll as it is ABI compatible with older builds of GNU libintl that used that DLL name.

Previously the "proxy-libintl" library that loads the gettext-runtime DLL dynamically was used, but now the GTK+ stack is just linked normally to intl.dll.