GTK+3 Installation Tutorial for Windows

Releasing your program

You should always ship all needed DLLs & files with your binaries. End-users should not be required to download the bundle themselves.

Requirements

GTK+3 is known to work on Windows XP, Vista, 7 and 8 at this date.
Developers might want to have a working MinGW or MSVC installation.

Initial setup

  1. Download the latest all-in-one bundle and extract it using right-click -> "Extract All...".
    Choose a location at your will ; we will call it %GTKDIR% during next phases.

  2. Add %GTKDIR%\bin to your PATH environment variable :
    - Windows XP : right-click on "My Computer" -> "Properties".
    - Windows Vista/7 : right-click on "Computer" -> "Properties" -> "Advanced system settings".
    Click on "Advanced tab" -> "Environment variables".
    Double-click on PATH line in "System variables" panel, and add ;%GTKDIR%\bin at the end of the text.

  3. Optionally, open a console (Start -> Run -> "cmd" or Start -> search for "cmd") and type the following commands :
    pango-querymodules > %GTKDIR%\etc\pango\pango.modules
    gdk-pixbuf-query-loaders > %GTKDIR%\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache
    gtk-query-immodules-3.0 > %GTKDIR%\lib\gtk-3.0\3.0.0\immodules.cache

  4. Let's test ! Still in a console or in the "Run" window, run the demo : gtk3-demo

Developing wth GTK+3

MinGW

You should have a working installation, i.e. "gcc.exe" already in your PATH.

In the console, verify that "pkg-config" prints out something reasonable by typing : pkg-config --cflags --libs gtk+-3.0

Use this output in your further compilation commands, like this one using this sample code (gtk3.c) :
gcc -o gtk3.exe gtk3.c -mms-bitfields -Ic:/gtk3/include/gtk-3.0 -Ic:/gtk3/include/atk-1.0 -Ic:/gtk3/include/cairo [...]

Test the resulting executable (here gtk3.exe) :

MSVC

Open the Visual Studio Command Prompt :

In the console, verify that "pkg-config" prints out something reasonable by typing : pkg-config --cflags gtk+-3.0

Use this output in your further compilation commands, like this one using this sample code (gtk3.c), modifying the following :
- delete the "-mms-bitfields" switch ;
- add the "-Dinline= /link /libpath:%GTKDIR% gtk-win32-3.0.lib gobject-2.0.lib" switches at the end.
For instance :
cl gtk3.c -mms-bitfields -Ic:/gtk3/include/gtk-3.0 -Ic:/gtk3/include/atk-1.0 [...] -Dinline= /link /libpath:c:/gtk3/lib gtk-win32-3.0.lib gobject-2.0.lib


("gtk-win32-3.0.lib gobject-2.0.lib" are a minimal requirement. You may want to add other .lib files as you need them)

Test the resulting executable (here gtk3.exe) :


Bundle content files list

- /bin

- /etc

- /include

- /lib

- /share


Minimal requirements and additional features

Documentation

Developer documentation can be found under "share\gtk-doc\html".
 (for instance, to read GTK+3 documentation, open "share\gtk-doc\html\gtk3\index.html" with your favorite web browser.