缺少GTK构建包括文件gdk-pixbuf / gdk-pixbuf.h

时间:2013-12-04 18:49:20

标签: gtk

我按照此处的说明安装了GTK:http://www.gtk.org/download/win32_tutorial.php

现在我正在尝试从这里构建一个GTK hello world程序:https://developer.gnome.org/gtk-tutorial/stable/c39.html#SEC-HELLOWORLD

我遇到了这个错误:

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>
                          ^

这似乎与How to repair "error: gdk-pixbuf/gdk-pixdata.h: No such file or directory?"的问题相同,但我不明白这个问题的答案。

这是编译器的命令行

C:\Users\James\code\smartone>gcc -o hello.exe gtk_hello_world.c -m32 -mms-bitfie
lds -IC:/gtk/include/gtk-3.0 -IC:/gtk/include/cairo -IC:/gtk/include/pango-1.0 -
IC:/tk/include/atk-1.0 -IC:/gtk/include/cairo -IC:/gtk/include/pixman-1 -IC:/gtk
/inlude -IC:/gtk/include/freetype2 -IC:/gtk/include -IC:/gtk/include/libpng15 -I
C:/gtk/include/libpng15 -IC:/gtk/include/glib-2.0 -IC:/gtk/lib/glib-2.0/include
-LC:/gtk/lib -lgtk-3 -lgdk-3 -lgdi32 -limm32 -lshel32 -lole32 -Wl,-luuid -lpango
cairo-1.0 -lpangoft2-1.0 -lfreetype -lfontconfig -lpangowin32-1.0 -lgdi32 -lpang
o-1.0 -lm -latk-1.0 -lcairo-gobject -lcairo -lgdkpixbuf-2.0 -lgio-2.0 -lgobject-
2.0 -lglib-2.0

这主要是使用

生成的
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

2 个答案:

答案 0 :(得分:1)

我知道这个问题非常老,但是我在Debian Stretch上从源代码编译xscreensaver时遇到了这个错误,发现丢失的软件包是libglade2-dev,尽管所有直觉都表明这是libgdk-pixbuf2.0-dev

希望这可以帮助下一个寻找该答案的人。

答案 1 :(得分:0)

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

首先运行pkg-config --list-all | grep gdk-pixbuf以获取您机器上gdk-pixbuf模块的确切名称(对我来说是gdk-pixbuf-2.0)。使用该名称来检查pkg-config认为安装了gdk-pixbuf的目录:

pkg-config --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。这就是你的文件没有的地方。