libusb 源码移植到工程项目中,使用CMake编译

10 篇文章 0 订阅
8 篇文章 1 订阅

1. 前言

在近期项目中,需要使用到libusb,在以前项目中,都是直接在ubuntu系统中,将其编译成动态库的形式,然后在项目工程中动态加载,如果是项目平台一致,不经常修改还好。但是,如果遇到平台多样的,就很麻烦,近期就遇到这个事,开发平台为Ubuntu, 到客户运行平台为centos 。因此,如果都是采用动态加载 .so 方式,就很麻烦。不同平台都需要安装libusb, 并且,系统平台一样,不同的gcc 或者 g++ 编译器版本不一样,可能也需要重新安装。

因此,根据上面所描述,为了解决多运行平台问题,需要将libusb源码,加入工程项目中,每次都参与编译,这样子就可以解决问题。这篇文章,将记录如何将libusb源码加入项目工程中,并且使用cmake 进行编译。

二、关于libusb

1. 下面为libusb介绍

三、下载libusb

1. 到其官网链接下载源代码 https://libusb.info/

2. 下载其源代码,鼠标移动到DOWNLOAD 菜单中,点击跳转到源代码下载页面,选择

3. 上面源代码下载页面为gitbub, Releases · libusb/libusb · GitHub.

选择需要的版本下载,

4.   解压,找到 libusb-1.0.26.tar\libusb-1.0.26\libusb  这个目录下源代码,然后                                                  

 

5. 拷贝对应代码到工程目录 ,根据gcc 编译libusb动态库,可以知道,那些源文件需要参与编译,

 6. 根据上面的安装libusbs时,需要参与链接的.lo 文件可以看到,因此,导入工程的文件如下:

 7. 新建CMakeList.txt 文件,指定参与编译的源文件

8.  增加编译链接,

#指定gcc 生成Relase 和 Debug 生成条件

SET(CMAKE_C_FLAGS_DEBUG "-lrt -ldl -g -ggdb")

SET(CMAKE_C_FLAGS_RELEASE "-lrt -ldl")

#指定g++ 生成Relase 和 Debug 生成条件

SET(CMAKE_CXX_FLAGS_DEBUG "-lrt -ldl -std=c++11 -g -ggdb")

SET(CMAKE_CXX_FLAGS_RELEASE "-lrt -ldl -std=c++11")

9.  由于观看libusb 源代码可以知道,其使用到多线程,因此,使用   g++ 或者 gcc 编译,需要链接上多线程库,

在Cmake 添加如下:

FIND_PACKAGE(Threads)

10. 编译如下:

target_link_libraries(testmain dl)

结束。。。。。。。。。。。。。。。。

/**
 *         ┏┓   ┏┓+ +
 *        ┏┛┻━━━┛┻┓ + +
 *        ┃       ┃
 *        ┃   ━   ┃ ++ + + +
 *        ████━████ ┃+
 *        ┃       ┃ +
 *        ┃   ┻   ┃
 *        ┃       ┃ + +
 *        ┗━┓   ┏━┛
 *          ┃   ┃
 *          ┃   ┃ + + + +
 *          ┃   ┃    Code is far away from bug with the animal protecting
 *          ┃   ┃ +    神兽保佑,代码无bug
 *          ┃   ┃
 *          ┃   ┃  +
 *          ┃    ┗━━━┓ + +
 *          ┃        ┣┓
 *          ┃        ┏┛
 *          ┗┓┓┏━┳┓┏┛ + + + +
 *           ┃┫┫ ┃┫┫
 *           ┗┻┛ ┗┻┛+ + + +
 *
 * @author chenxi
 * @date 2022年9月4日15:59:11
 */
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值