簡體   English   中英

在Eclipse中鏈接藍牙庫bluez

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM