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

时间:2010-10-12 16:51:43

标签: c++ usb cross-platform

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

2 个答案:

答案 0 :(得分:9)

尝试libusb

  

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

但是你应该注意到它在Windows上使用libusb0.sys内核模式驱动程序,这不是WHQL认证的,它可能是64位Windows 7和Windows Server 2008 R2中的一个问题。对不起,libusb0.sys is digitally signed版本1.2.0.0。

答案 1 :(得分:4)

我想更新这篇帖子给那些现在回来的人......

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

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

建议libusbx的原因如下:

  • 不需要sudo访问
  • 通过阅读收到的消息为我提供了更好的工作
  • 更好的支持和更频繁的错误/问题响应
  • 发送/接收消息的异步和同步支持

当然,libusb-1.0确实支持异步/同步报告......但libusbx背后的理念更具吸引力且文档更好。

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