我正在构建一个Golang应用程序,需要在其中集成EPSON的USB打印机。我的项目导入了Google的“ gousb”项目(https://github.com/google/gousb)以启用该功能,该项目正在使用“ libusb” C库(https://libusb.info/)。结果,当最终用户使用USB打印机功能时,我的项目会动态触发libusb的C代码。但是,最终用户的计算机可能预装或未预装libusb。有没有办法用我的项目本身静态编译libusb?
package main
import (
"fmt"
"github.com/google/gousb"
"C"
)
const (
VENDOR_EPSON = 0x04b8
)
func main() {
devices := getEpsonUSBPrinters()
if len(devices) == 0 {
fmt.Println("No EPSON USB Device Found")
}
for _, device := range devices {
fmt.Println("FOUND:", device.String())
}
}
func getEpsonUSBPrinters() []*gousb.Device {
ctx := gousb.NewContext()
defer ctx.Close()
devices, _ := ctx.OpenDevices(func(desc *gousb.DeviceDesc) bool {
if desc.Vendor == VENDOR_EPSON {
return true
}
return false
})
defer func() {
for _, d := range devices {
d.Close()
}
}()
return devices
}