我尝试编译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”。现在它应该可以正确编译。