编译包而不安装所需的库

编译包而不安装所需的库

我尝试编译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

我该如何解决这个问题?

答案1

我认为您提供给命令的路径有问题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路径并重新运行配置。

答案2

我自己找到了解决方案。复制文件夹“include”bluez-libs-3.36并将其移动到bluez-utils-3.36\common.然后将复制的文件夹从“include”重命名为“bluetooth”。现在它应该可以正确编译。

相关内容