我正在尝试为我的 main.go 文件安装我的自定义包。然而,当我跑
go install custom.go
我收到这个错误
go install: no install location for .go files listed on command line (GOBIN not set)
如何设置GOBIN?
自走1.11和introduction of Go modules, ,GOPATH不需要每个项目了,并默认为~/go全球工具/项目你会go get。
GOPATH
~/go
go get
[Go 1.162020 年第一季度)应默认GOBIN为 GOPATH[0\]/bin.
GOBIN
GOPATH[0\]/bin
但是现在,对于任何使用模块的项目,您都不会再有类似“ go install: no install location ...”的错误消息。
go install: no install location ...
2014 年的原始答案:
检查你的GOPATH变量。 确保:
你的消息来源在 GOPATH/src
GOPATH/src
bin
请参阅GOPATH 环境变量(其中“DIR”是一个GOPATH文件夹):
该bin目录保存已编译的命令。 每个命令都以其源目录命名,但只有最后一个元素,而不是整个路径。也就是说,带有 source in 的命令DIR/src/foo/quux安装到 中DIR/bin/quux,而不是DIR/bin/foo/quux. ” foo/” 前缀被去除,以便您可以添加DIR/bin到您的PATH以获取已安装的命令。 如果GOBIN设置了环境变量,命令将安装到它命名的目录而不是DIR/bin. GOBIN必须是绝对路径。
该bin目录保存已编译的命令。 每个命令都以其源目录命名,但只有最后一个元素,而不是整个路径。也就是说,带有 source in 的命令DIR/src/foo/quux安装到 中DIR/bin/quux,而不是DIR/bin/foo/quux. ” foo/” 前缀被去除,以便您可以添加DIR/bin到您的PATH以获取已安装的命令。
DIR/src/foo/quux
DIR/bin/quux
DIR/bin/foo/quux
foo/
DIR/bin
PATH
如果GOBIN设置了环境变量,命令将安装到它命名的目录而不是DIR/bin. GOBIN必须是绝对路径。
例如,这个线程说明了在 go build 在 之外完成的情况下会发生什么GOPATH/src:
看起来您GOPATH已设置为~/go但您运行了go install命令~/dev/go
go install
~/dev/go
参见Go Build
Go 路径是包含 Go 源代码的目录树列表。咨询解决在标准 Go 树中找不到的导入。
如果你已经做了go build,你也可以尝试一个go install(否custom.go):你想安装包,而不是单个文件。
go build
custom.go
我设置了 GOBIN 路径,这对我有用
export GOBIN=[WorkspacePath]/bin