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,不重启不会生效的