Какие источники использует go для «корней» пакета, кроме $ GOROOT и $ GOPATH? - PullRequest
0 голосов
/ 27 мая 2020

Когда я пытаюсь ввести vet свой Go код и у меня нет пакетов для импорта в области видимости, я обычно получаю такое сообщение:

foo.go:12:2: cannot find package "api/test/metadata/v1" in any of:
    /golang-root/src/api/test/metadata/v1 (from $GOROOT)
    /path/to/home/dir/foo/bar/baz/src/api/test/metadata/v1 (from $GOPATH)
    /path/to/home/dir/foo/bar/src/config/src/api/test/metadata/v1
    /path/to/home/dir/foo/bar/src/platform/quux/src/api/test/metadata/v1

Я могу ошибаться, но похоже, что здесь говорится, что последние две линии взяты из чего-то другого, кроме $GOPATH / $GOROOT. Однако не указано, откуда они взяты . Откуда они берутся?

(Я хочу, чтобы он смотрел, это / path / to / home / dir / foo / bar / src / config / go / api / test / metadata / v1, потому что это скомпилированный буфер протокола. Но ответ на него вторичен по сравнению с попыткой понять, что происходит.)

1 Ответ

0 голосов
/ 27 мая 2020

Это полностью проблема плохо сформулированного сообщения об ошибке от Go. Все записи, начиная со строки с (from $GOPATH) и далее, относятся к $GOPATH. Других источников нет. (Я сделал это проблемой в проекте golang и отправил PR, чтобы сделать его более полезным.)

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