Программа зависает без ошибок на gousb.NewContext () - PullRequest
0 голосов
/ 01 июля 2019

Я использую пакет 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 будет возвращено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...