При компиляции исходного пакета я получил ошибку от make
это было похоже:
In file included from foo.c:28:0:
bar.h:23:18: fatal error: bar.h: No such file or directory
#include <bar.h>
^
compilation terminated.
make[x]: *** [baz] Error 1
make[x]: Leaving directory
Как я обрабатываю это?
Это обычно указывает, что Вы не установили некоторую зависимость программы, которую Вы пытаетесь скомпилировать. В зависимости от рассматриваемого заголовочного файла и программы Вы пытаетесь скомпилировать, у Вас есть несколько опций:
Иногда Вы хотите скомпилировать из источника пакет, уже обеспеченный Ubuntu (чтобы получить другую версию, возможно, или исправить его). Если программное обеспечение не изменилось слишком много, можно использовать apt
получить зависимости:
sudo apt-get build-dep <package-name>
Это должно установить все пакеты, должен был создать пакет Ubuntu того программного обеспечения (который может иметь меньше или больше пакетов, чем, в чем Ваш исходный пакет на самом деле нужен).
Если только необходимо внести некоторое незначительное изменение в источнике или применить патч, Вы могли бы даже смочь сохранить значимый бит усилия путем разрешения apt
и dpkg
сделайте работу, требующую беготни:
sudo apt-get build-dep <package-name>
apt-get source <package-name>
Это загрузит исходные файлы пакета, включая все должен был сделать пакет из него. Файлы будут в названном каталоге <package-name>-<some-version>
. Введите его, внесите все изменения, которые Вы хотите и затем делаете:
sudo dpkg-buildpackage -b -us -uc
Это создает неподписанный двоичный пакет (пакеты) в родительском каталоге (cd ..
). Можно затем использовать dpkg
устанавливать эти пакеты:
sudo dpkg -i <package-name>_<some-version>_<architecture>.deb
Примеры:
Можно все еще попытать счастья с определенными пропавшими без вести заголовочного файла. Используйте любого индекс Пакетов Ubuntu (опция искать содержание пакетов) или apt-file
искать файл. Иногда несколько пакетов могут обеспечить столь же названные файлы, в этом случае, предпочесть:
/usr/include
.uname -m
знать то, что Ваша архитектура).README
и INSTALL
файлы в источнике (если есть).-dev
, которые обычно включают заголовки, необходимые для компиляции.