簡體   English   中英

在 ubuntu 上為 raspberry pi3 進行 libusb 交叉編譯

[英]libusb cross compiling for raspberry pi3 on ubuntu

我遵循的步驟交叉編譯libusb-1.0.9以與已經交叉編譯的QT5 for raspberry pi3 我的libusb1.0.9文件夾位於/home/yasir/Development/crosscompile/libususb-1.0.9

/mnt/rasp-pi-rootfs/ rasp /mnt/rasp-pi-rootfs/安裝樹莓派 pi3 的映像

腳步

第1步。

/home/yasir/Development/crosscompile我運行這個

./fixQualifiedLibraryPaths /mnt/rasp-pi-rootfs/ /home/yasir/Development/crosscompile/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc

第2步。

然后我去/home/yasir/Development/crosscompile/libususb-1.0.9我運行這個

./configure --host=arm-linux --prefix=/usr/local/libusb-rpi  -disable-udev --with-sysroot=/mnt/rasp-pi-rootfs/  CROSS_COMPILE=/home/yasir/Development/crosscompile/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- CFLAGS=-I/mnt/rasp-pi-rootfs/usr/include/ /mnt/rasp-pi-rootfs/usr/local/include/ LIBS=-L/mnt/rasp-pi-rootfs/usr/lib

請注意終端輸出的平均值: 在此處輸入圖片說明

第 3 步

sudo make

第四步

sudo make install

.so 文件生成

第 5 步

make install確實將文件復制到 PC 上的/usr/local/libusb-rpi ,但不會復制到掛載的映像。 所以我做了這個

sudo mkdir -p /mnt/rasp-pi-rootfs/usr/local/libusb-rpi
sudo rsync -avh /usr/local/libusb-rpi/  /mnt/rasp-pi-rootfs/usr/local/libusb-rpi/

但是 QT5 編譯器聲稱我這樣做時libusb-1.0.so格式錯誤

object dump  -f libusb-1.0.so 

這清楚地表明libusb -1.0.so文件是生成的,但不是用於libusb -1.0.so pi arm 架構的,而是用於主機系統的。

請告訴我我錯在哪里。 為什么libusb-1.0.so文件沒有針對 arm 架構(raspberry pi3)進行交叉編譯,而我已經使用了所有正確的工具進行交叉編譯。

請提供建議,以便我可以通過交叉編譯為 rapberry pi3 生成.so文件,盡管我也在libusb.so pi3 本身調查了生成的libusb.so文件,但發現它體積小,其架構也是 arm。

我使用下面的腳本進行配置,然后生成了一個正確的 libusb-1.0.so 文件,其架構適用於 arm(樹莓派 pi3)。

./configure CC=/home/yasir/Development/crosscompile/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc  --host=arm-linux --enable-udev=no --enable-shared  --prefix=/usr/local/libusb-rpi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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