【问题标题】:Linking bluetooth library bluez in eclipse在eclipse中链接蓝牙库bluez
【发布时间】:2017-03-29 02:36:58
【问题描述】:

我想在eclipse neon上编译并运行以下蓝牙扫描码bluetooth scan code

我需要在树莓派 3 上运行它,所以我做了以下操作:

1- 我从bluez下载了最新的bluez 5.43版

2- 我按照Adafruit 中提到的步骤在我的 pi 上编译了下载的文件

3- 我将已编译的文件夹“bluez-5.43”从我的 Pi 复制到 PC,以便与 eclipse 一起使用。我正在使用 Sysgcc 交叉编译工具链开发Cross Compiling on windows using SyssGcc toolchain

4- 我在安装 SyssGcc 工具链后使用Setting Up Cross-Compilation In Eclipse 上的步骤准备了 eclipse

5-我创建了一个c++项目,复制了第一个网址中提到的蓝牙的主要代码,然后转到:

项目 > 属性 > C/C++ 构建 > 设置 > GCC C++ 编译器 > 包含

在包含路径 (-l) 中,我添加:.....\bluez-5.43\lib\

日食 项目 > 属性 > 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)

【问题讨论】:

    标签: c++ eclipse bluetooth raspberry-pi bluez


    【解决方案1】:

    以上内容对我来说还不够,要了解我所缺少的内容,我配置了 bluez --disable-silent-rules(启用查看编译完整命令) --enable-testing(所以我可以看到类似于我需要的代码) 然后我运行make VERBOSE=1 来查看所有需要的链接: lib/libbluetooth-internal.la src/libshared-glib.la -lglib-2.0

    【讨论】:

    • 在 linux 上,静态库 .a 文件可以找到为 bluez-5.55/lib/.libs/libbluetooth-internal.a 和 bluez-5.55/src/.libs/libshared-glib.a
    【解决方案2】:

    经过多次试验,我能够解决这个错误,并且我在上面提到的问题中的步骤被认为是一些想要使用 Bluez 蓝牙协议栈开发 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 可以在屏幕上读取你的手机。

    【讨论】:

      猜你喜欢
      • 2015-02-02
      • 2014-07-11
      • 2016-05-18
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 2013-01-27
      相关资源
      最近更新 更多