Использование vgo build
Вот пошаговое руководство по использованию vgo
"Hello, World", включая распространенные ошибки и способы их устранения.
$ go get -u golang.org/x/vgo
$ cd /tmp/hello # Outside of GOPATH.
$ cat main.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
$ vgo build
cannot determine module root; please create a go.mod file there
Эта ошибка говорит нам о том, что нам нужно указать корень нашего модуля vgo.Модуль представляет собой набор пакетов (возможно, один) версий вместе.Создайте пустой go.mod
файл, чтобы указать, что это корень модуля:
$ touch go.mod
Попробуйте построить снова: $ vgo build
.
vgo: cannot determine module path for source directory
/tmp/hello (outside GOPATH, no import comments)
Эта ошибка говорит нам, что vgo не знает путь импорта нашего пакета.Есть два способа сказать это:
- Добавить оператор
module
к go.mod
. - Добавить комментарий
import
к нашему пакету.
Сейчас мы перейдем к варианту 2 и вернемся к варианту 1. Измените первую строку main.go
на:
package main // import "my/import/path/hello"
$ vgo build
одна последняявремя.
Запустите двоичный файл: $ ./hello
Hello, World
Примечание: go.mod
теперь содержит строку module
(опция1 выше):
$ cat go.mod
module my/import/path/hello
Если вы находитесь внутри GOPATH
, ошибка на шаге 5 не должна возникать - vgo build
автоматически обнаружит, что вы внутри GOPATH
и добавьте строку module
соответственно.
Использование vgo run
(без использования vgo build
)
В этом примере, давайте использовать hello.go
из Тур по версионному Го (vgo) :
$ go get -u golang.org/x/vgo
$ mkdir /tmp/hello2
$ curl -sS https://swtch.com/hello.go >hello.go
$ vgo run hello.go
cannot determine module root; please create a go.mod file there
$ touch go.mod
$ vgo run hello.go
vgo: resolving import "rsc.io/quote"
vgo: finding rsc.io/quote (latest)
vgo: adding rsc.io/quote v1.5.2
Hello, world.