The gtk crate expects GTK+, GLib and Cairo development files to be installed on your system.
Debian and Ubuntu
> sudo apt-get install libgtk-3-dev
> sudo dnf install gtk3-devel glib2-devel ### Fedora 21 and earlier > sudo yum install gtk3-devel glib2-devel
> brew install gtk+3
On Windows Rust can use either the MSVC toolchain or the GNU toolchain. The latter is easier to install, but the former provides a better overall experience and allows interfacing with Windows libraries that are incompatible with the GNU toolchain and allows for example usage of the Visual Studio debugger.
- Install GTK using the instructions on the GTK website.
This will take some time. Once it’s finished, make a note of the folder
installed\x64-windows(64-bit); these instructions will refer to it as
%VCPKGDIR%\binto the beginning of your
- Set the
GTK_LIB_DIRenvironment variable to
- Create the following symlinks. (NTFS has supported symlinks since Windows Vista, but prior to the
Windows 10 Creators Update it required elevated privileges. Copying the files also works, but
you’ll need to do it again when GTK is updated.)
- Create the folder
%VCPKGDIR%\etc\gtk-3.0. Inside it, create the file
process didn't exit successfully (exit code: 0xc0000139, STATUS_ENTRYPOINT_NOT_FOUND)
%VCPKGDIR%\bin is too late in the
PATH environment variable, and DLLs for other programs are being found before the ones installed alongside GTK. Move
%VCPKGDIR%\bin earlier in your
PATH and try again.
Make sure you have the GNU ABI version of the rust compiler installed.
Contrary to earlier instructions, you don’t need to uncheck “Linker and
platform libraries” in the Rust setup or delete
ld.exe in Rust’s
Getting the GTK+ SDK
Install MSYS2. We’re going to assume it’s installed in
C:\msys64on 64-bit systems and
C:\msys32on 32-bit ones. Adjust the paths in the following steps if necessary.
In the “MSYS2 MSYS Shell” install
> pacman -S mingw-w64-i686-gtk3
> pacman -S mingw-w64-x86_64-gtk3
If you prefer getting the SDK from gtk-win64 or building it from source, set the variables in the next section accordingly.
Using the native Windows shell
Back in the
cmd.exe shell set the
C:\> SET GTK_LIB_DIR=C:\msys32\mingw32\lib C:\> SET PATH=%PATH%;C:\msys32\mingw32\bin
C:\> SET GTK_LIB_DIR=C:\msys64\mingw64\lib C:\> SET PATH=%PATH%;C:\msys64\mingw64\bin
If you’re happy with these changes, make them permanent with
C:\> SETX GTK_LIB_DIR %GTK_LIB_DIR% C:\> SETX PATH %PATH%
Using the MSYS2 MinGW shell
Instead of setting the environment variables manually, you can let
sort the paths out for you.
In the “MSYS2 MSYS Shell” install the
> pacman -S mingw-w64-i686-toolchain
> pacman -S mingw-w64-x86_64-toolchain
Start the “MSYS2 MinGW Shell” (not to be confused with “MSYS2 MSYS Shell”).
Error on linking on Windows MSYS2: undefined reference to `imp_acrt_iob_func’
Download these packages and install it with
pacman -U <path>:
Also pkg-config better ignore these packages on updating, add “IgnorePkg = mingw-w64-x86_64-crt-git mingw-w64-x86_64-headers-git” to /etc/pacman.conf