去build立:“无法find包”(即使GOPATH设置)
即使我已经正确设置了GOPATH,我仍然无法“去build造”或“跑步”find我自己的软件包。 我究竟做错了什么? 非常感谢!
$ 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和build设应该工作得很好。
其他推荐步骤:
-  通过以下命令将$GOPATH/bin添加到$PATH:PATH="$GOPATH/bin:$PATH"
-  将main.go移到$GOPATH/src的子文件夹,例如$GOPATH/src/test
-  现在go install test应该在$GOPATH/bin中创build一个可执行文件,可以通过在terminal中inputtest来调用它。
编辑:因为你的意思是GOPATH,请参阅fasmat的答案 (upvoted)
 正如在“ 如何让我find我的软件包? ”中所提到的那样,您需要将xxx包放在xxx目录中。 
请参阅Go语言规范 :
 package math 
一组共享相同
PackageName形成一个包的实现。
一个实现可能要求一个包的所有源文件都在相同的目录中。
守则组织提到:
当构build一个导入包“
widget”的程序时,go命令会在Go根目录中查找src/pkg/widget,然后 – 如果没有find包源,它会按顺序在每个工作区内searchsrc/widget。
  (“工作空间”是GOPATH一个path条目:该variables可以为你的' src, bin, pkg '引用多个path) 
(原文答案)
 您也应该将GOPATH设置为〜/ go,而不是GOROOT ,如“ 如何编写Go代码 ”所示。 
Gopath用于parsing导入语句。 它由go / build包实现并logging在文件中。
GOPATH环境variables列出了寻找Go代码的地方。
在Unix上,该值是冒号分隔的string。
在Windows上,该值是以分号分隔的string。
在计划9中,该值是一个列表。
 这与GOROOT不同: 
Go二进制发行版假设它们将被安装在
/usr/local/go(或者在Windows下的c:\Go),但可以将它们安装在不同的位置。
如果你这样做了,那么在使用Go工具时,你需要将GOROOT环境variables设置为该目录。
你有没有尝试添加到你的'path'的绝对目录?
 export PATH=$PATH:/directory/to/go/