GTK生成缺少包含文件gdk pixbuf/gdk pixbuf.h

GTK生成缺少包含文件gdk pixbuf/gdk pixbuf.h,gtk,Gtk,我已按照此处的说明安装GTK: 现在,我正试图从这里构建一个GTK hello world程序: 我犯了这个错误: In file included from C:/gtk/include/gtk-3.0/gdk/gdkcairo.h:28:0, from C:/gtk/include/gtk-3.0/gdk/gdk.h:33, from C:/gtk/include/gtk-3.0/gtk/gtk.h:30,

我已按照此处的说明安装GTK:

现在,我正试图从这里构建一个GTK hello world程序:

我犯了这个错误:

In file included from C:/gtk/include/gtk-3.0/gdk/gdkcairo.h:28:0,
                 from C:/gtk/include/gtk-3.0/gdk/gdk.h:33,
                 from C:/gtk/include/gtk-3.0/gtk/gtk.h:30,
                 from gtk_hello_world.c:1:
C:/gtk/include/gtk-3.0/gdk/gdkpixbuf.h:34:35: fatal error: gdk-pixbuf/gdk-pixbuf
.h: No such file or directory
 #include <gdk-pixbuf/gdk-pixbuf.h>
                          ^
这主要是使用

pkg-config --cflags --libs gtk+-3.0
-mms-bitfields -IC:/gtk/include/gtk-3.0 -IC:/gtk/include/cairo -IC:/gtk/include/
pango-1.0 -IC:/gtk/include/atk-1.0 -IC:/gtk/include/cairo -IC:/gtk/include/pixma
n-1 -IC:/gtk/include -IC:/gtk/include/freetype2 -IC:/gtk/include -IC:/gtk/includ
e/libpng15 -IC:/gtk/include/gdk-pixbuf-2.0 -IC:/gtk/include/libpng15 -IC:/gtk/in
clude/glib-2.0 -IC:/gtk/lib/glib-2.0/include -LC:/gtk/lib -lgtk-3 -lgdk-3 -lgdi3
2 -limm32 -lshell32 -lole32 -Wl,-luuid -lpangocairo-1.0 -lpangoft2-1.0 -lfreetyp
e -lfontconfig -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lm -latk-1.0 -lcairo-gobjec
t -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl

我们需要导致错误的确切gcc命令行。如果找不到该文件,那是因为pkg config无法将gdk pixbuf安装的正确位置传递给gcc

第一次运行
pkg config——列出所有| grep-gdk-pixbuf
,以获得您机器上gdk-pixbuf模块的确切名称(对我来说是
gdk-pixbuf-2.0
)。请使用该名称检查pkg config认为安装了gdk pixbuf的目录:

pkg配置--cflags gdk-pixbuf-2.0

给我的回报:

-pthread-I/usr/include/gdk-pixbuf-2.0-I/usr/include/libpng15-I/usr/include/glib-2.0-I/usr/lib64/glib-2.0/include


-I
在这里告诉gcc包含目录
/usr/include/gdk-pixbuf-2.0
。这就是您的文件不存在的地方。

我知道这个问题非常古老,但我在Debian Stretch上从源代码编译
xscreensaver
时遇到了这个错误,发现丢失的包是
libglade2 dev
,尽管直觉可能会认为它是
libgdk-pixbuf2.0-dev


希望这能帮助下一个寻找答案的人

我正在使用pkg config生成编译器标志。我不明白您如何获得该结果。cflags(gdk pixbuf)中缺少一些重复项,但链接器标志(lgdkpixbuf-2.0)中存在一些重复项,这是无意义的。检查您的GTK安装,肯定有问题。顺便说一句,注意gcc最新版本中的参数顺序。建议使用
gcc`pkg config--cflags gtk+-3.0`-o example.c`pkg config--libs gtk+-3.0`/code>来构建。下面是
pkg config--cflags gtk+-3.0
为我返回的内容:
-pthread-D_REENTRANT-I/usr/include/gtk-3.0-I/usr/include/atk-1.0-I/usr/include/at-spi2-atk/2.0-I/usr/pango-I/usr/include/gio-unix-2.0/-I/usr/include/cairo-I/usr/include/gdk-pixbuf-2.0-I/usr/include/glib-2.0-I/usr/include/harfbuzz-I/usr/include/freetype2-I/usr/include/pixman-1-I/usr/include/directfb-I/usr/include/libpng15-I/usr/include/libdrm
pkg-config --cflags --libs gtk+-3.0
-mms-bitfields -IC:/gtk/include/gtk-3.0 -IC:/gtk/include/cairo -IC:/gtk/include/
pango-1.0 -IC:/gtk/include/atk-1.0 -IC:/gtk/include/cairo -IC:/gtk/include/pixma
n-1 -IC:/gtk/include -IC:/gtk/include/freetype2 -IC:/gtk/include -IC:/gtk/includ
e/libpng15 -IC:/gtk/include/gdk-pixbuf-2.0 -IC:/gtk/include/libpng15 -IC:/gtk/in
clude/glib-2.0 -IC:/gtk/lib/glib-2.0/include -LC:/gtk/lib -lgtk-3 -lgdk-3 -lgdi3
2 -limm32 -lshell32 -lole32 -Wl,-luuid -lpangocairo-1.0 -lpangoft2-1.0 -lfreetyp
e -lfontconfig -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lm -latk-1.0 -lcairo-gobjec
t -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl