提问人:weuoimi 提问时间:11/11/2023 更新时间:11/11/2023 访问量:45
如何使用 pkg-config 在 C 中编译 GTK4 项目?
How can i compile GTK4 project in C with pkg-config?
问:
最近我尝试为取自 https://www.gtk.org/docs/getting-started/hello-world/ 的 GTK4 库编译 C 代码
我使用的操作系统是 Debian 12。
问题是我使用的命令
gcc $(pkg-config --cflags gtk4) -o hello-world-gtk main.c $(pkg-config --libs gtk4)
以及以下 CMake 代码
find_package(PkgConfig REQUIRED)
pkg_search_module(GTK REQUIRED IMPORTED_TARGET gtk4)
返回相同的错误:
#include <gtk/gtk.h> not found
`
但是 gtk.h 文件存在于 /usr/include/gtk-4.0/gtk/gtk.h 中 所以我试过了
$ pkg-config --cflags gtk4
-I/usr/include/gtk-4.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/graphene-1.0 -I/usr/lib/x86_64-linux-gnu/graphene-1.0/include -mfpmath=sse -msse -msse2 -pthread
$ pkg-config --libs gtk4
-lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgraphene-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
$ gcc -I/usr/include/gtk-4.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/graphene-1.0 -I/usr/lib/x86_64-linux-gnu/graphene-1.0/include -mfpmath=sse -msse -msse2 -pthread -o hello-world-gtk main.c -lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgraphene-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
它编译成功。
那我做错了什么?请帮我解开这个谜团,我完全对这个谜团感到困惑。
答: 暂无答案
评论
libgtk-4-dev
ldconfig -p | grep libgtk-4
main.c
hello-world-gtk.c