Компилировать пакет без установки необходимых библиотек

Я пытаюсь скомпилировать bluez-utils-3.36 , но после попытки настроить пакет появляется сообщение об ошибке: configure: error: Bluetooth library is required .

Проблема: мне не разрешено обновлять или устанавливать что-либо на этом компьютере, только компилировать. Поэтому я думаю, что единственный способ – указать на библиотеки. Поэтому я написал ./configure -help и нашел два параметра:

  BLUEZ_CFLAGS C compiler flags for BLUEZ, overriding pkg-config BLUEZ_LIBS linker flags for BLUEZ, overriding pkg-config 

Поэтому я добавил их в свою команду и добавил путь:

./configure --prefix=/home/black/test/ltib/rootfs BLUEZ_CFLAGS=-I~/home/black/test/bluetooth/bluez-libs-3.36/include BLUEZ_LIBS="-L~/home/black/test/bluetooth/bluez-libs-3.36/src/.libs -lbluetooth"

Теперь он работал без ошибок.

Но если я выполню команду make я получаю много ошибок, например:

 glib-helper.c:34:33: error: bluetooth/bluetooth.h: Datei oder Verzeichnis nicht gefunden glib-helper.c:35:30: error: bluetooth/rfcomm.h: Datei oder Verzeichnis nicht gefunden glib-helper.c:36:29: error: bluetooth/l2cap.h: Datei oder Verzeichnis nicht gefunden glib-helper.c:37:27: error: bluetooth/sco.h: Datei oder Verzeichnis nicht gefunden glib-helper.c:38:27: error: bluetooth/sdp.h: Datei oder Verzeichnis nicht gefunden glib-helper.c:39:31: error: bluetooth/sdp_lib.h: Datei oder Verzeichnis nicht gefunden 

Datei oder Verzeichnis nicht gefunden является немецким и означает: folder or file not found

Как я могу это решить?

Я думаю, что есть проблема с путями, которые вы передаете команде configure :

 ./configure --prefix=/home/black/test/ltib/rootfs \ BLUEZ_CFLAGS=-I~/home/black/test/bluetooth/bluez-libs-3.36/include \ BLUEZ_LIBS="-L~/home/black/test/bluetooth/bluez-libs-3.36/src/.libs -lbluetooth" 

Когда символ ~ не имеет предшествующих пробелов, он не расширяется до пути к вашему домашнему каталогу. Рассмотрим выход:

 $ echo -I~/foo -I~/foo 

Против:

 $ echo -I ~/foo -I /home/lars/foo 

Вы можете просто заменить ~ на $HOME . Даже с этим исправлением ваши пути выглядят подозрительными:

 ~/home/black/test/bluetooth/bluez-libs-3.36/include 

Предполагая, что ваше имя пользователя является black , оно будет расширяться до:

 /home/black/home/black/test/... 

Вероятно, это неверно.

Попробуйте исправить пути -I и -L и перезапустить configure.

Я нашел решение от myselve. Скопируйте папку «include» из bluez-libs-3.36 и переместите копию в bluez-utils-3.36\common . Затем переименуйте скопированную папку из «include» в «bluetooth». Теперь он должен компилироваться без ошибок.