在 QT 中使用 libusb 检测 MAC 上的 USB 设备

本文介绍了如何在QT中使用libusb库来检测MAC上的USB设备。首先,详细讲解了libusb的下载、安装和运行示例程序。接着,阐述了静态和动态链接库的创建过程。最后,重点讲述在QT项目中集成libusb动态链接库的步骤,包括添加库文件、修改编译选项以及编写并执行测试程序,成功获取MAC上的USB设备列表。

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

最近在用 QT 做一个 MAC 上的 Kindle 批注管理软件,遇到的第一个问题就是检测 MAC 上连接的 USB 设备的状态。如果是在 Cocoa 进行开发,会有对应的系统 API 可供使用,但是由于我是在 QT 平台进行的开发,所以无形中加大了一点难度。就在这时,我发现了一个库:libusb

libusb 介绍

libusb 设计了一系列的外部API 为应用程序所调用,通过这些API应用程序可以操作硬件,从libusb的源代码可以看出,这些API 调用了内核的底层接口,和kernel driver中所用到的函数所实现的功能差不多,只是libusb更加接近USB 规范。使得libusb的使用也比开发内核驱动相对容易的多。(From: 百度百科

0x00 下载 libusb

在 libusb 项目主页(http://libusb.info)我们可以找到最新的源码,下载下来,并且解压。这里我下载的是 libusb-1.0.20.tar.bz2,把它解压出来。

0x01 安装 libusb

cd libusb-1.0.20/
./configure
make
make install

这时就已经在机器上编译安装完成了 libusb

0x02 运行示例程序

cd examples/
make

然后我们看到在 examples/ 目录下多了几个可执行程序:

  • listdevs:列出当前所有的 USB 设备

  • hotplugtest:USB 热插拔测试

  • dpfp_threaded:操作 U.are.U 4000b 指纹采集仪的 Demo

  • dpfp:初始化 U.are.U 4000b 指纹采集仪

  • sam3u_benchmark:测试 Atmel SAM3U USB 主控的同步传输的性能的 Demo

  • fxload:USB 固件操作

Usage: fxload [-v] [-V] [-t type] [-d vid:pid] [-p bus,addr] [-s loader] -i firmware

  -i <path>       -- Firmware to upload
  -s <path>       -- Second stage loader
  -t <type>       -- Target type: an21, fx, fx2, fx2lp, fx3
  -d <vid:pid>    -- Target device, as an USB VID:PID
  -p <bus,addr>   -- Target device, as a libusb bus number and device address path
  -v              -- Increase verbosity
  -q              -- Decrease verbosity (silent mode)
  -V              -- Print program version
  • xusb:USB 测试程序
usage: /Users/jason/Downloads/libusb-1.0.20/examples/.libs/xusb [-h] [-d] [-i] [-k] [-b file] [-l lang] [-j] [-x] [-s] [-p] [-w] [vid:pid]

   -h      : display usage
   -d      : enable debug output
   -i      : print topology and speed info
   -j      : test c
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值