Ответ 1
Каждая директория, указанная в
GOPATH
, должна иметь предписанную структуру:В каталоге
src/
содержится исходный код. Путь ниже "src
" определяет путь импорта или исполняемое имя.В каталоге
pkg/
хранятся установленные объекты пакета. Как и в дереве Go, каждая целевая операционная система и пара архитектуры имеют свои собственные подкаталогpkg
(pkg/GOOS_GOARCH
).Если
DIR
- это каталог, указанный вGOPATH
, пакет с источником в DIR/src/foo/bar можно импортировать как "foo/bar
" и имеет скомпилированную форму установлен на "DIR/pkg/GOOS_GOARCH/foo/bar.a
".В каталоге
bin/
хранятся скомпилированные команды. Каждая команда имеет имя для его исходный каталог, но только конечный элемент, а не весь путь. То есть команда с источником вDIR/src/foo/quux
устанавливается в DIR/bin/quux, а неDIR/bin/foo/quux
.foo/
разделяется так, что вы может добавитьDIR/bin
в вашPATH
, чтобы получить установленные команды. ЕслиGOBIN
задана переменная среды, команды установлены на вместо имениDIR/bin
вместо имениВот пример макета каталога:
GOPATH=/home/user/gocode /home/user/gocode/ src/ foo/ bar/ (go code in package bar) x.go quux/ (go code in package main) y.go bin/ quux (installed command) pkg/ linux_amd64/ foo/ bar.a (installed package object)
Структура вашего каталога неверна. Вы пытаетесь установить команду (package main
). Он должен находиться в исходном каталоге, названном после вашей команды. См. Команду quux
выше.
В вашем случае предположим, что ваша команда будет называться billy
.
$ mkdir -p /Users/xwilly/Dropbox/go/project/src/billy
который находится внутри вашего GOPATH
. Переместите файл test.go
в этот каталог. Run
$ go install billy
Команда billy
должна, если вы не установили GOBIN
, быть установлена в
/Users/xwilly/Dropbox/go/project/bin
внутри вашего GOPATH
, который должен находиться в вашем PATH
.