打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Ubuntu交叉编译libusb库

参考博客:

软件包:libusb源码:http://www.libusb.org/

编译环境:

主机:ubuntu 16.04ARM交叉编译工具链: arm-linux-gnueabihf-

步骤如下:

1、下载libusb-1.0.9软件包和libusb-compat-0.1.4软件包(我实际没有用到这个库)http://www.libusb.org/

2、解压

tar -jxvf libusb-1.0.9.tar.bz2

3、编译与安装

$ cd libusb-1.0.9/ #进入libusb-1.0.9目录$ mkdir install #创建软件安装目录$ ./configure --build=i686-linux --host=arm-linux --prefix=`pwd`/install  CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ #配置编译环境$ make # 开始编译$ make install #安装
  • 1
  • 2
  • 3
  • 4
  • 5

说明一下:
–build=i686-linux表示该软件在x86平台上被编译
–host=arm-linux表示该软件编译完成后在arm平台上运行
–prefix后面为软件安装目录

4、检验编译结果是否就是ARM平台可用的库:

~/code/libusb-1.0.9/install/lib$ file libusb-1.0.so.0.1.0libusb-1.0.so.0.1.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=7cfde4289fc5e33bbb72707e4edc35b9b8f8b163, not stripped#查看.so库中可用的库函数:lambda@lambda:~/code/libusb-1.0.9/install/lib$ nm libusb-1.0.so.0.1.000004824 T libusb_lock_event_waiters00003304 T libusb_open00003404 T libusb_open_device_with_vid_pid...都是libusb函数,没有usb开头的函数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

编译libusb-compat-0.1.4软件包

与编译libusb-1.0.9软件包的方法类似,但要注意编译libusb-compat-0.1.4(依赖于libusb-1.0.4的编译结果,故configure时需要额外指定其PKG_CONFIG_PATH)

./configure --build=i686-linux --host=arm-linux --prefix=`pwd`/install  CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ PKG_CONFIG_PATH=/home/lambda/code/libusb-1.0.9/install/lib/pkgconfig
  • 1

使用交叉编译后的libusb库

1、需要将生成的库复制到开发板上程序才能运行。
2、编写程序时我把库文件直接放在工程目录下了。
3、Makefile书写

#指定头文件目录INCLUDE_DIRS = -I.             -I./udb_busi/hid/libusb-1.0.9/include/libusb-1.0 #指定库文件LIBS_USB  = -lusb-1.0 -lpthread             -L./udb_busi/hid/libusb-1.0.9/lib 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

至此,完!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
开发环境搭建
手动编译移植库/软件的一般方法
Opencv在Crotex
Linux下pc/sc接口的实现
「嵌入式」基于国产全志科技T3——从开发板到PLC测试案例
ARM QT移植详细步骤教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服