我正在尝试在 ubuntu 10.10 上编译 chromium 源。但我收到此“gdk-pixbuf/gdk-pixbuf.h:没有此文件或目录”错误。您能告诉我如何修复它吗?我有“/usr/include/gtk-2.0/gdk/gdkpixbuf.h”,所以我应该有 gdkpixbuf dev 包,对吗?(因为它说“/usr/include/gtk-2.0/gdk/gdkpixbuf.h:37:致命错误:gdk-pixbuf/gdk-pixbuf.h:没有此文件或目录”
$ make out/Debug/chrome
CXX(target) out/Debug/obj.target/app_base/app/active_window_watcher_x.o
In file included from /usr/include/gtk-2.0/gdk/gdkcairo.h:28,
from /usr/include/gtk-2.0/gdk/gdk.h:33,
from app/active_window_watcher_x.cc:6:
/usr/include/gtk-2.0/gdk/gdkpixbuf.h:37: fatal error: gdk-pixbuf/gdk-pixbuf.h: No such file or directory
compilation terminated.
make: *** [out/Debug/obj.target/app_base/app/active_window_watcher_x.o] Error 1
答案1
这里也有一个通用的“授人以渔……”的答案:
安装该apt-file
包,并使用它来搜索包含所需文件的包。在本例中,您将获得:
└─(14:36:%)── apt-file search gdk-pixbuf/gdk-pixbuf.h
libgdk-pixbuf2.0-dev: /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h
libgfcui-dev: /usr/include/gfc-2.0/gfc/gdk-pixbuf/gdk-pixbuf.hh
lsb-build-desktop3: /usr/include/lsb3/gtk-2.0/gdk-pixbuf/gdk-pixbuf.h
它(令人惊讶地)返回了多个结果。 libgdk-pixbuf2.0-dev
是你想要的包。
答案2
我安装了上述两个软件包,也遇到了类似的问题。在 10.10 中,gdk-pixbuf 包含文件似乎存储在 /usr/include 之外的自己的目录中,而在以前的版本中,它们被归入 gtk-2.0。如果您已经安装libgtk2.0-dev
,libgdk-pixbuf2.0-dev
则需要执行:
sudo ln -s /usr/include/gdk-pixbuf-2.0/gdk-pixbuf /usr/include/gtk-2.0/gdk-pixbuf
这将创建指向其先前所在的新的 gdk-pixbuf 目录的符号链接。
答案3
您有 gdkpixbuf.h,它与 gdk-pixbuf.h 不同。请注意破折号,它们是两个不同的文件。
greyfade 可能正确地指出您需要 greyfade 提到的包,您可能还应该安装 libgdk-pixbuf2.0-dev,因为 gdk-pixbuf.h 位于 libgdk-pixbuf2.0-dev 包中。
执行“aptitude build-dep chromium-browser”应该会下载手动安装 10.10 版 chromium-browser 源包所需的所有开发包。即使您直接从 chromium 本身提取,它也应该会有所帮助 - 无论如何您都需要这些开发文件。
答案4
来自GTK+ 参考手册你应该告诉编译器在哪里找到 GTK+ 头文件和库。这可以通过 pkg-config 实用程序完成。
$ pkg-config --cflags gtk+-2.0
或者使用 shell 的“反引号”功能。
$ cc `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello