程序冻结,没有错误出现在gousb.NewContext()

时间:2019-07-01 18:10:07

标签: go visual-studio-code usb

我正在使用github.com/google/gousb包来获取有关连接到机器的USB设备的信息,但是当我调用函数gousb.NewContext()时,什么也没发生,并且代码似乎什么也没做超过那一点。

我看到了一个类似但不完全相同的问题:

can't load package: package .: no buildable Go source files

对于上述类似问题,我检查了GOPATH并确保没有空包

我也在github上问过,但他们无济于事,因为问题出在我的构建环境中,而不是gousb本身

我可以很好地获取gousb回购协议,并且一切似乎都在工作,intellisense提出建议等等。

但是当我实际运行程序时,它冻结在gousb.NewContext()上,我使用断点对其进行了跟踪,发现问题是由libusb.go文件中的下面一行引起的。

if err := fromErrNo(C.libusb_init(&ctx)); err != nil { return nil, err }

特别是 C.libusb_init(&ctx)

当我“进入”上面的那一行时,在VSCode上使用调试器,它转到一个名为_cgo_gotypes.go的文件中,并且在文件中显示:

Could not load source '_cgo_gotypes.go'.

,并且在调试控制台中显示:

go list failed on .: can't load package: package .: no Go files in C:\Users\TOJ\AppData\Local\Programs\Microsoft VS Code

我绝对不知道发生了什么,如果有人可以阐明一些想法,我将不胜感激。

这是我去的环境:

set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\TOJ\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Work\Important\[REPO-NAME]
set GOPROXY=
set GORACE=
set GOROOT=c:\go
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\TOJ\AppData\Local\Temp\go-build424489806=/tmp/go-build -gno-record-gcc-switches

我希望不会引发任何错误,并且希望返回*gousb.Context类型

0 个答案:

没有答案