'How should I set up to develop with GTK4?
I'm running Ubuntu 21.10 and have installed build-essential
, libgtk-4-dev
and Gnome Builder as IDE. I'm starting with a basic tutorial that starts out #include <gtk/gtk.h>
but it gives the error:
1:10: error: 'gtk/gtk.h' file not found
I read somewhere that it should be in /usr/include/ but when I looked I found it was at /usr/include/gtk-4.0/gtk/gtk.h
What's the best way to set up my system so that the default include line works? I read https://askubuntu.com/questions/1374329/how-to-compile-a-gtk4-application-in-ubuntu-21-10 but his fix was installing libgtk-4-dev which I've already done. I thought of creating a symlink from /usr/include/gtk-4.0/gtk/gtk.h to /usr/include/ but that seems like a rabbit hole I shouldn't go down. I'm stuck before I even got started! Any help appreciated.
Solution 1:[1]
Per the official C documentation on compiling programs with GTK4 on Unix you need to run pkg-config with the requisite paths before running the compiler:
Include:
$ 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
Libraries:
$ 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
Compile:
$ cc `pkg-config --cflags gtk4` hello.c -o hello `pkg-config --libs gtk4`
Make sure to replace cc
with your respective compiler and hello
with your source file and desired executable name. Also you may need to remove the -pthread
flags.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |