龙芯linux交叉编译libusb,Ubuntu交叉编译libusb库

编译环境:

主机:ubuntu 16.04

ARM交叉编译工具链: arm-linux-gnueabihf-

步骤如下:

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

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.0

libusb-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.0

00004824 T libusb_lock_event_waiters

00003304 T libusb_open

00003404 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/pkgconfig1

使用交叉编译后的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/lib1

2

3

4

5

6

至此,完!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值