在Go中使用USB

时间:2014-07-11 19:24:37

标签: go usb

有人可以提供一个使用go-libusb的示例(或者可能是在Golang中使用USB的任何其他lib)。

  1. 我创建了包libusb
  2. https://github.com/popons/go-libusb/blob/main/libusb.go
  3. 复制内容

    有一个错误:

    Unresolved symbol: '_Cstruct_usb_device_descriptor' 
    

    谢谢。

2 个答案:

答案 0 :(得分:3)

首先,您必须从http://www.libusb.org/wiki/libusb-win32安装libusb,然后将// #include<usb.h>更改为:

/*
    #cgo LDFLAGS: -lusb
    #include <usb.h>
*/

descriptor _Cstruct_usb_device_descriptordescriptor C.struct_usb_device_descriptor

或者从https://github.com/OneOfOne/go-libusb拉出我的前叉,我已经发送了一个包含更改的拉取请求。

答案 1 :(得分:2)

go-libusb package poponslibusb-0.1基于C的USB驱动程序的包装器。 libusb-0.1已被“弃用且未维护”。 [来源:libusb API version overview]

对于使用Go和USB,我建议使用libusb 1.0source on GitHub)Go驱动程序,例如:

  • gousb - 最初由Kyle Lemons创作。有更新的叉子,例如truveris
  • libusb - Discloure :我是原始创作者。

以上两种Go驱动程序都需要安装libusb的C版本。要在Windows上安装,请查看libusb Windows driver installation instructions,建议使用Zadig。您还可以查看SO问题Installing libusb-1.0 on Windows 7,但唯一的答案似乎是显示如何安装libusb-0.1而不是libusb-1.0。

作为Windows用户,我知道这对您没有帮助,但对于OS X用户,可以使用Homebrew安装libusb:

$ brew install libusb