[英]Linking bluetooth library bluez in eclipse
我想编译和运行下面的蓝牙扫描码蓝牙扫描代码 Eclipse的霓虹灯。
我需要在Raspberry pi 3上运行它,所以我做了以下工作:
1-我从bluez下载了最新的bluez版本5.43
2-我按照Adafruit中提到的步骤在pi上编译了下载的文件
3-我将已编译的文件夹“ bluez-5.43”从我的Pi复制到了PC,以便与Eclipse一起使用。 我正在使用Sysgcc交叉编译工具链进行开发在Windows上使用SyssGcc工具链进行交叉编译
4-我在SyssGcc工具链上安装Eclipse后,使用在Eclipse中设置交叉编译中的步骤进行了准备
5-我创建了一个c ++项目,并复制了第一个URL中提到的蓝牙的主要代码,然后转到:
项目>属性> C / C ++构建>设置> GCC C ++编译器>包含
在包含路径(-l)中,我添加:..... \\ bluez-5.43 \\ lib \\
在Eclipse项目>属性> C / C ++构建>设置> GCC C ++链接器>库中
在库(-l)中,我添加:蓝牙
在库搜索路径(-L)中,我添加:.... bluez-5.43 \\ lib.libs
但是当我编译时出现以下错误,请提供任何帮助,因为有人知道如何使用eclipse和交叉编译工具链来编译代码?
10:17:08 **** Incremental Build of configuration Debug for project Bluetooth_test ****
make all
'Building target: Bluetooth_test'
'Invoking: Cross GCC Linker'
arm-linux-gnueabihf-gcc -L"C:\Users\aawad\Desktop\bluez-5.43\lib\.libs" -o "Bluetooth_test" ./src/Bluetooth_test.o -lbluetooth
c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/4.9/../../../../arm-linux-gnueabihf/bin/ld.exe: cannot find -lbluetooth
collect2.exe: error: ld returned 1 exit status
make: *** [Bluetooth_test] Error 1
10:17:11 Build Finished (took 3s.57ms)
经过几次试验,我能够解决此错误,并且我在问题中上面提到的步骤被认为是某些人想要使用Bluez Bluetooth协议栈开发C的一般准备。
对我有用的是:
在eclipse include中添加标题,以使CDT索引器知道文件的位置
项目>属性> C / C ++构建>设置> GCC C ++编译器>包含
在包含路径(-l)中,我添加:“ C:\\ Users \\ aawad \\ Desktop \\ bluez-5.43 \\ lib”
在链接部分:
在Eclipse项目>属性> C / C ++构建>设置> GCC C ++链接器>库中
在库(-l)中,我添加:蓝牙内部
在库搜索路径(-L)中,我添加:“ C:\\ Users \\ aawad \\ Desktop \\ bluez-5.43 \\ lib.libs”
编译并在Pi上运行最终的可执行文件。将手机蓝牙设为可见。 您会发现Pi可以在屏幕上读取您的手机。
上面的内容对我来说并不足够,要了解我所缺少的内容,我使用--disable-silent-rules
配置了bluez(启用查看编译完整命令)-- --enable-testing
(因此我可以看到与所需代码相似的代码)然后我运行make VERBOSE=1
来查看所有需要的链接:lib / libbluetooth-internal.la src / libshared-glib.la -lglib-2.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.