arm-linux-gnueabihf-gcc交叉编器libusb库

本文介绍如何下载libusb库,并详细说明交叉编译的过程。包括配置、编译、安装步骤,以及如何验证编译结果。此外,还介绍了如何在目标平台上运行测试程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、下载libusb

下载网址:http://www.libusb.org/

例如:libusb-1.0.26.tar.bz2 版本

二、交叉编译libusb库生成和安装

1.执行configure 生成Makefile

在home目录下创建libusb目录用来存放libusb开源库

~$ mkdir libusb 

创建库的安装路径

~$ mkdir libusb/install

进入 libusb目录

~$ cd libusb/

解压libusb压缩包

~/libusb$ tar -xvf libusb-1.0.26.tar.bz2

进入 libusb目录

~/libusb$ cd libusb-1.0.26/
~/libusb/libusb-1.0.26$ 

执行configure 生成Makefile

./configure --build=i686-linux --host=arm-linux --prefix=/home/new/libusb/install CC=/home/new/Software/rv1126/rv1126-sdk/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc CXX=/home/new/Software/rv1126/rv1126-sdk/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ --disable-udev
执行上述指令后报如下错误
【--build=i686-linux 】:表示该软件在x86平台被编译
【--host=arm-linux】:表示该libusb库编译完成后在arm平台上运行
【--prefix=/home/.... 】: 表示为改库安装路径。
【CC=/home... 】【CXX=/home.. 】 :表示指定了交叉编译使用的C,C++交叉编译器
【--disable-udev】 : 表示 不使能 libudev,不加会出现如下错误提示:
					  configure: error: udev support requested but libudev header not installed

2. make 执行 Makefile 文件

$ make

在这里插入图片描述

3. make install执行安装

$ make install

在这里插入图片描述

执行完make install后我们可以在prefix指定的目录中看到编译好的库及相应的头文件。
在arm平台下使用的库文件名称是:libusb-1.0.so.0.1.0。

三、交叉编译测试程序

进入examples

~/libusb/libusb-1.0.26$ cd examples/

交叉编译器arm-linux-gnueabihf-gcc编译测试源程序 listdevs.c

arm-linux-gnueabihf-gcc -o listdevs -I/home/new/libusb/install/include/libusb-1.0 listdevs.c -L/home/new/libusb/install/lib -lusb-1.0

四、把listdevs程序复制到arm板上执行结果并用lsusb命令验证

1. listdevs程序执行查询usb驱动VID和PID

在这里插入图片描述

2.用lsusb命令查询usb驱动VID和PID

在这里插入图片描述

3.结果

listdevs程序与lsusb命令查询结果一致,安装编译成功。

五、查看install下的文件

1.头文件路径

在这里插入图片描述

2.库文件

在这里插入图片描述

在linux中,la是使用libtool编译出的库文件,是记录同名动态库和静态库相关信息的文本文件;
该文件是通过libtool保存在平台之间的唯一文件。libtool是一个通用库支持脚本,只与后缀名为lo、la的libtool文件打交道。
libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中;
使用libtool的标准方法,可以在不同平台上创建并调用动态库。
可以认为libtool是gcc的一个抽象,其包装了gcc(或者其他的编译器),用户无需知道细节;
只要告诉libtool需要编译哪些库即可,libtool将处理库的依赖等细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ai_Sj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值