go install:GOPATH外的目录没有安装位置

dar*_*ryl 24 macos path go

好吧,我已经看到这个问题出现了很多,但没有解决方案适合我.我曾多次尝试解决这个问题,但没有.这就是我所做的:

  • 安装Go.

然后我将路径要求添加到我的.bash_profile:

  • export PATH=$PATH:/usr/local/go/bin
  • export GOPATH=$HOME/go

然后我设置了正确的文件夹:

文件夹

如您所见,我还创建了一个预计的轮胎.

main.go的内容很简单:

package main

import "fmt"

func main() {
  fmt.Println("Hello, world!")
}
Run Code Online (Sandbox Code Playgroud)

我认为这就是让事情正常工作所需的一切,但无论我做什么,当我尝试运行时总是会出现以下错误go install:

go install: no install location for directory /Users/Daryl/go/src/tire outside GOPATH

我知道我可以跑go install tire,但那不是问题.我宁愿知道发生了什么.

这是我跑步时得到的go env:

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/daryl/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
TERM="dumb"
CC="clang"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fno-common"
CXX="clang++"
CGO_ENABLED="1"
Run Code Online (Sandbox Code Playgroud)

这对你们任何人都很熟悉吗?我错过了什么?任何帮助,将不胜感激.

Pie*_*Pah 66

当你运行go installGo查找$GOBINenv变量路径时.要么你需要设置你$GOBIN$GOPATH/bin

$ export GOBIN=$GOPATH/bin
Run Code Online (Sandbox Code Playgroud)

和/或添加$GOBIN到您的操作系统搜索路径

$ export PATH=$PATH:$GOBIN
Run Code Online (Sandbox Code Playgroud)

使用该命令而不会收到错误.

  • 我认为你说`export GOBIN = $ GOPATH:bin`你应该说`export GOBIN = $ GOPATH/bin` (4认同)

dar*_*ryl 1

问题正如 James Henstridge评论的那样,由于某种原因,我的用户目录名称大小写存在问题。即使目录小写的,我也必须将其变为大写。

这有效:

GOPATH=/Users/Daryl/go

这没有:

GOPATH=$HOME/go

然而,自从从 iMac 转移到 rMBP 后,我在设置 Go 时没有遇到任何问题,所以,直到今天,我不确定发生了什么,但在这种情况下,大写修复了它。