即使我已经正确设置了 GOPATH
,我仍然无法通过“go build”或“go run”来找到我自己的包。我做错了什么?
$ echo $GOROOT
/usr/local/go
$ echo $GOPATH
/home/mitchell/go
$ cat ~/main.go
package main
import "foobar"
func main() { }
$ cat /home/mitchell/go/src/foobar.go
package foobar
$ go build main.go
main.go:3:8: import "foobar": cannot find package
最佳答案
它不起作用,因为您的 foobar.go
源文件不在名为 foobar
的目录中。 go build
和 go install
尝试匹配目录,而不是源文件。
- 将
$GOPATH
设置为有效目录,例如export GOPATH="$HOME/go"
- 将
foobar.go
移动到$GOPATH/src/foobar/foobar.go
并且构建应该可以正常工作。
其他推荐步骤:
- 通过
PATH="$GOPATH/bin:$PATH"
将 - 将
main.go
移动到$GOPATH/src
的子文件夹,例如$GOPATH/src/test
go install test
现在应该在$GOPATH/bin
中创建一个可执行文件,可以通过在终端中键入test
来调用它。<
$GOPATH/bin
添加到您的 $PATH
关于build - 去构建 : "Cannot find package" (even though GOPATH is set),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13214029/