+
95
-

回答

$GOPATH 是我们的工作空间,保存go项目代码和第三方依赖包,GOPATH可以设置多个,其中,第一个将会是默认的包目录,使用 go get 下载的包都会在第一个path中的src目录下,使用 go install时,在哪个GOPATH中找到了这个包,就会在哪个GOPATH下的bin目录生成可执行文件。

|-- bin
|-- pkg
`-- src
src:存放源代码,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)
pkg:编译时生成的中间文件
bin:编译后生成的可执行文件(在项目内执行go install,会把执行文件安装到bin目录)(为了方便,可以把此目录加入到 P A T H 变 量 中 , 如 果 有 多 个 g o p a t h , 那 么 使 用 PATH 变量中,如果有多个gopath,那么使用PATH变量中,如果有多个gopath,那么使用{GOPATH//?/bin:}/bin添加所有的bin目录

$GOROOT 是Go的安装目录,(类似于java的JDK)

|-- api
|-- AUTHORS
|-- bin
|-- blog
|-- CONTRIBUTING.md
|-- CONTRIBUTORS
|-- doc
|-- favicon.ico
|-- lib
|-- LICENSE
|-- misc
|-- PATENTS
|-- pkg
|-- README.md
|-- robots.txt
|-- src
|-- test
`-- VERSION

go找第三方库或包的时候先去goroot下找,然后去gopath下面找。

可执行go env查看go的所有配置信息:


网友回复

我知道答案,我要回答