我遵循的步骤交叉编译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
第3步
sudo make
第4步
sudo make install
第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
文件,发现它的体积很小,其架构也很简单也是手臂。
答案 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