GOPATH 和 GOROOT
不同于其他语言,go中没有项目的说法,只有包, 其中有两个重要的路径,GOROOT
和 GOPATH
GOROOT
是安装目录,GOPATH
是我们的工作空间, 用来存放包的目录
GOPATH
可以设置多个,其中,第一个将会是默认的包目录,使用 go get 下载的包都会在第一个path中的src目录下,使用 go install时,在哪个GOPATH
中找到了这个包,就会在哪个GOPATH
下的bin目录生成可执行文件
修改 GOPATH 和 GOROOT
安装的时候如果没有更改设置,默认的GOROOT
是在 C:\Go中,而 GOPATH
会是在 C:\users\youName\go,
如果我们更改了go的安装位置,那么可以需要设置一下
GOROOT
环境变量了
打开环境变量设置,查看下面的系统变量,如果有 GOROOT这个选项的话,查看是否需要更改,没有的话,新建一个就可以了,如图:
同理,如果我们想在加一个工作空间的话,直接更改 GOPATH
就可以了, go安装的时候会在上面的用户变量中添加GOPATH
, 如果没有的话像上一步一样新建就可以了,多个目录使用 ; 分号隔开
不管是可执行包,还是非可执行包,通通都应该在某个 $GOPATH/src下。如果你这样做了,那么就不会出现本地包这种写法了
import "./path/package"
比如你可以把你的可执行(项目)包,安放在某个 $GOPATH/src下,例如 $GOPATH/src/app/youpackagedir
这样本地包的import就变成
import "app/yourpackagedir/subpackage"
这样有什么用呢?
- 可以使用 go install 你的子包,有利于go build的时间,如果子包较大,那就更明显了
- go code的自动完成可以用了
修改完以后需要重启 命令行工具, cmd/powershell/gitbash/Other,不重启不会生效的