2014-02-14 111 views
4

我正在开发一个Go项目,它需要几个外部库,如MySQL驱动程序,图像操作库等。现在,我已将$GOPATH设置为/ usr/lib/go/src,它将任何下载的软件包在/ usr/lib/go/src/src中,这显然看起来不正确。如果我将$GOPATH设置为/ usr/lib/go,则会出现一条错误消息,指出$GOPATH无法设置为与$GOROOT相同的目录。那么我应该在我的build.sh中放入GOPATH=/path/to/my/project/lib,并且当我提交到git repo时,将lib /放在我的.gitignore中?

我意识到这可能是一个愚蠢的问题。它现在工作的很好,我只是想知道这是否是不好的做法。

回答

7

$ GOPATH实际上可以是您选择的任何位置(只有少数例外),只要编译器知道在哪里找到它即可。如果你改变它只是确保你更新

export GOPATH=/path/to/gopath

我个人的偏好的路径是保持$ GOPATH从我的代码中分离出来,除非我在写这是指通过go get <repo path>要导入一个包,在这种情况下,我会写在

$GOPATH/src/<repo path>

这是标准的位置,该软件包被存储时,使用代码go get <repo path>

+0

啊,这很有道理。我只是想确定我正在使用不好的练习,所以这并不会在以后伤害我。 – eggbertx

+2

在编写公共代码时,我发现另一件便利的事情是从〜/ proj创建符号链接到$ GOPATH/src/,这样可以更轻松地在shell中跳转。 – Sekm