一尘不染

转到安装失败并出现错误:GOPATH外部的目录xxx没有安装位置

go

~/src/go-statsd-client> echo $GOPATH
/Users/me/gopath
~/src/go-statsd-client> echo $GOROOT
/usr/local/Cellar/go/1.1.1\
~/src/go-statsd-client> go install
go install: no install location for directory /Users/me/src/go-statsd-client outside GOPATH

无论项目采用何种结构,始终都会失败,并显示相同的消息。去构建完美的作品。

这是我的 go env

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/me/gopath"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.1.1"
GOTOOLDIR="/usr/local/Cellar/go/1.1.1/pkg/tool/darwin_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common"
CGO_ENABLED="1"

这是在Mac OSX Mountain Lion上,并且安装了自制软件。


阅读 184

收藏
2020-07-02

共1个答案

一尘不染

如果不提供任何参数go install,则默认为尝试在当前目录中安装软件包。错误消息告诉您它不能执行此操作,因为当前目录不属于您的$GOPATH

您可以:

  • 定义$GOPATH到您的$ HOME(export GOPATH=$HOME)。
  • 将您的源移动到当前$GOPATHmv ~/src/go-statsd-client /User/me/gopath)内。

在这两种方法之后,进入go-statsd-client目录并键入go install将起作用,因此go install go-statsd- client从文件系统中的任何位置键入都将起作用。生成的二进制文件将放入$GOPATH/bin

作为不相关的建议,您可能希望使用域名对软件包进行命名空间,以避免名称冲突(例如github.com/you/go-statsd- client,如果您在其中保存源代码)。

2020-07-02