libusb在ubuntu上交叉编译树莓派pi3

时间:2017-04-13 10:36:23

标签: linux raspberry-pi3 libusb-1.0

我遵循的步骤交叉编译libusb-1.0.9以使用已经交叉编译的QT5 raspberry pi3。 我的libusb1.0.9文件夹位于/home/yasir/Development/crosscompile/libususb-1.0.9

覆盆子pi3的装载图像     /mnt/rasp-pi-rootfs/

STEPS

第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

请注意终端输出的含义: enter image description here

第3步

sudo make

第4步

sudo make install

.so file generated

第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文件,但没有生成用于主机系统的raspberry pi arm架构。

请告诉我哪里错了。为什么libusb-1.0.so文件没有为arm架构(raspberry pi3)进行交叉编译,而我使用了所有正确的交叉编译工具。

请建议所以我可以通过交叉编译为rapberry pi3生成.so文件,虽然我还在raspberry pi3本身调查了生成的libusb.so文件,发现它的体积很小,其架构也很简单也是手臂。

1 个答案:

答案 0 :(得分:0)

我使用下面的脚本进行配置,然后生成了正确的libusb-1.0.so文件,其架构适用于arm(raspberry 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