是否有C++跨平台USB库?

Boj*_*les 13 c++ usb cross-platform

我将(将要)在Qt中编写一个将在3个主要操作系统(Windows,Linux和Mac)上运行的应用程序.这个应用程序的一个功能是它需要USB与一个自定义外部硬件通信.是否有可用的跨平台USB库?

Kir*_*sky 9

试试libusb.

支持的操作系统:Linux,FreeBSD,NetBSD,OpenBSD,Darwin,MacOS X(以及Windows,通过libusb-win32项目).

但是你应该注意它libusb0.sys在Windows上使用内核模式驱动程序,它不是WHQL认证的,它可能是64位Windows 7和Windows Server 2008 R2中的一个问题.对不起,版本1.2.0.0 libusb0.sys 已经过数字签名.


eat*_*hil 5

我只想为现在回来的任何人更新这篇文章......

Libusb(0.1 版)已被弃用。现代标准是使用 libusb-1.0 或 libusbx。

我个人认为使用 libusbx 的原因有很多。它是由沮丧的 libusb-0.1 开发人员编写的,他们想要更频繁的更新周期和更好的错误维护系统。

我推荐 libusbx 的原因如下:

  • 不需要 sudo 访问
  • 开箱即用,阅读传入消息对我来说效果更好
  • 更好的支持和更频繁的错误/问题响应
  • 发送/接收消息的异步和同步支持

诚然,libusb-1.0 确实支持异步/同步报告……但 libusbx 背后的理念更有吸引力,文档也更好。

所以这完全取决于您,如果您或任何人仍然想了解更多关于图书馆的信息,可以很容易地在网上找到历史。您还可以查看堆栈问题以获取有关直接主题的更多信息。

  • 截至 2014 年 2 月,实际上只剩下 [libusb](http://libusb.info)。linusbx 主页有以下评论:libusbx 是 [libusb](http://libusb.info) 的一个分支,该库提供对 USB 设备的通用访问。截至 2014 年 1 月 26 日,该项目已完全合并回 [libusb](http://libusb.info) 并停止使用。由于不会再发布 libusbx,因此强烈建议您改用 [libusb](http://libusb.info)。 (4认同)