【问题标题】:Can libusb be build using GNU GCC compiler?可以使用 GNU GCC 编译器构建 libusb 吗?
【发布时间】:2021-06-10 12:05:51
【问题描述】:

我正在尝试开始使用 libusb 通过 COM 端口进行通信(EDIT: 适用于我的 Rs232 设备),仅限 Windows 10 x64。我的 IDE 是代码:块。我有几个问题:

我下载了 libusb from their website(最新的 windows 二进制文件)

但我注意到在 sourceforge 中有一个 libusb-win32 ''version''。它说

"libusb-win32是Windows下libusb-0.1的移植"

  1. 这是什么意思,我应该使用“最新的 windows 二进制文件”版本还是“libusb-win32”版本?

此外,他们网站上的自述文件(“libusb windows 二进制文件”)包含在 Visual Studio 和 Mingw 中编译的说明,并且只有 Visual Studio 和 Mingw 的文件。

  1. 这是否意味着我无法在 GNU GCC 编译器中编译 libusb?

编辑:问题 2) 已在此处得到解答:https://stackoverflow.com/a/38252750/13294095

【问题讨论】:

  • Windows 10,代码:块。让我在这个问题上添加这个细节。
  • 那么 Windows 二进制文件就是您所需要的。您不需要构建它们,只需在项目中包含 .dll 和 .lib 即可。
  • 我的第二条评论并不完全正确。如果您只想使用下载中提供的二进制文件,则将 .lib 和 .h 包含到您的项目中,并将 .dll 放在可见的位置。对于开发,我通常只是将 .dll 放在与将使用它的 .exe 相同的目录中。稍后它应该进入 C:\Windows\sysWOW64,如果是 32bit,或者 C:\Windows\System32 是 64bit
  • 是的,它们与 windows 兼容。在示例目录中查找 testlibusb.c。如果您在项目中安装了 .lib 和 .h,并且 .dll 可见,则该文件应该可以毫无问题地编译。
  • libusb 用于 USB 设备,COM 端口是 RS-232 设备,所以我不确定您将如何使用 libusb 进行 COM 端口访问。但是 libusb 1.0.24 在 MSYS2 shell 中使用 ./configure --disable-udev && make 可以完美构建 MinGW-w64

标签: c++ c com gnu libusb


【解决方案1】:

“我正在尝试开始使用 libusb 通过 COM 端口进行通信(编辑:对于我的 Rs232 设备),仅限 Windows 10 x64”

如果您有一个设备,当您通过 USB 端口将其插入 PC 时,它会实例化一个 COM 端口,那么该设备确实有一个 UART。该设备还必须具有在连接到 PC 时安装的驱动程序,并导致建立您可以在设备管理器中看到的串行端口(在端口下)阅读有关 USB serial driver 的一些背景信息。

“我在 Rs232 之后有一个物理 uart 设备,我是我的 MCU。我使用 Rs-232 从 UART 转换为 USB 协议。-即使我没有 知道什么是“虚拟 com 端口”。”

您的设备可能有一个 UART,但是当您通过 USB 端口将其插入 PC 时,会通过 PC 上的驱动程序创建一个 virtual serial port...“当 USB 转串口适配器连接时通过 USB 端口连接到计算机,计算机上的驱动程序创建了一个虚拟 COM 端口,该端口显示在 Windows 的设备管理器中"...阅读more here。 (在架构下)

简而言之,如果当您将设备插入 PC 时,您可以在设备管理器中看到已创建的端口,那么所有工作都已完成。您的应用程序代码可以包含C serial port library 以打开端口并发送/接收串行消息等。但是,如果您正在开发带有 UART 的设备以通过 USB 端口在 Windows PC 上工作,那么是的,您需要创建驱动程序。也许 libUSB 适合你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-06
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多