Я пытаюсь скомпилировать источник хрома в Ubuntu 10.10. Но я получаю эту ошибку "gdk-pixbuf / gdk-pixbuf.h: нет такого файла или каталога". Подскажите, пожалуйста, как мне это исправить? У меня есть файл /usr/include/gtk-2.0/gdk/gdkpixbuf.h, так что у меня должен быть пакет gdkpixbuf, верно? (поскольку сказано «/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
Из GTK + Reference Manual вы должны указать компилятору, где искать заголовочные файлы и библиотеки GTK +. Это делается с помощью утилиты pkg-config.
$ pkg-config --cflags gtk+-2.0
Или использовать функцию «backticks» оболочки.
$ cc `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello
Здесь также есть общий ответ «научить человека ловить рыбу…»:
Установите пакет 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
это пакет, который вы ищете.
Я имею оба из, установленных пакетов, на которые ссылаются и имел подобные проблемы. В 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 каталог, где он был расположен ранее.
Скопируйте папку gdk-pixbuf
из /usr/include/gdk-pixbuf-2.0
в /usr/include/gtk-2.0
. Это помогло мне.
У вас есть gdkpixbuf.h, который отличается от gdk-pixbuf.h. Обратите внимание на тире, это два разных файла.
greyfade, вероятно, правильно, если вам нужен этот пакет, о котором упоминает greyfade, вам, вероятно, следует также установить libgdk-pixbuf2.0-dev, поскольку gdk-pixbuf.h находится в пакете libgdk-pixbuf2.0-dev.
Выполнение «aptitude build-dep chromium-browser» должно загрузить все пакеты разработки, которые вам необходимы, чтобы вручную установить исходный пакет chromium-browser для 10.10. Это должно помочь, даже если вы вытаскиваете прямо из самого хрома - вам все равно понадобятся эти файлы разработки.
Конечно, сначала установите libgdk-pixbuf2.0-dev
:
sudo apt-get install libgdk-pixbuf2.0-dev
Затем:
sudo ln -s /usr/include/gdk-pixbuf-2.0/gdk-pixbuf /usr/include/gtk-2.0/gdk-pixbuf