Я использую пакет github.com/google/gousb
для получения информации о USB-устройствах, подключенных к моей машине, но когда я вызываю функцию gousb.NewContext()
, ничего не происходит, и код, похоже, ничего не делает и не достигает этой точки .
Я видел похожую, но не идентичную проблему:
не удается загрузить пакет: пакет.: Нет готовых исходных файлов Go
Для вышеупомянутой подобной проблемы я проверил свой 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
Я абсолютно не знаю, что происходит, и был бы очень признателен, если бы кто-то мог пролить свет.
вот мой go env Кстати:
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
будет возвращено