一、概述
最近做了关于在X86环境下通过FT232H芯片实现的USB转SPI的相关驱动,接触到了libusb。libusb是一个开源的用C实现的,应用程序与用户的USB设备进行通信的库。它是可移植的,对外使用统一的API,支持Windows、macOS、Linux、Android。它是用户模式(user-mode),应用程序与USB设备通信不需要高权限,但是在Android下好像有些接口需要root权限才能调用成功。它支持所有版本的USB协议。它的License是LGPL,源码地址在https://github.com/libusb/libusb,最新发布版本为1.0.23。
二、libusb的安装
首先,在官网http://libusb.info/可以下载到它的安装包,我的Linux环境是 Ubuntu 18.04.5
版本的,将下载的安装包放至/usr/local/lib/路径下;
对安装包进行解压
tar xjvf libusb-1.0.24.tar.bz2
接下来安装过程主要分为三步:
a:执行./configure来配置安装包。
b:执行make编译该安装包。
c:执行make install安装
执行 ./configure 命令,注意该命令可以选择编译平台,编译的库版本也即运行平台,编译工具链,安装路径等,所以不是默认配置的用户需要在此项自行配置,常见配置选项有:
--build=i686-linux指明软件的编译平台
--host=arm-linux 指明软件的运行平台
--prefix 指明软件的安装目录
本次是在 x86_64的本机PC上安装,则需配置
./configure --build=x86_64-linux
又在执行过程中发现,会报出configure: error: udev support requested but libudev header not installed的错误,只需要在命令后加 --disable -udev 就可解决。因此最终执行
./configure --build=x86_64-linux --disable-udev
即可成功配置,如图所示:
执行 sudo make install
至此,提示已经将库添加至/usr/local/lib目录下,在后续基于libusb编程时,需要包含这个库,编译时需要加上 --lusb-1.0;具体查看如下图:
以上就是在Ubuntu下安装libusb库的所有过程;