设置GOROOT的缘由ui
编译器的位置指定的时候,须要指定GO开发包的安装位置,而后设置环境变量PATH的时候,须要指定到安装包下的bin目录,其中就有如下的编译/执行器.因此GOROOT指定了前面的路径.3d
当使用go run 源码,自动化的完成编译和执行二进制文件的时候.源码必须放在当前运行go解释器的同一目录下,而后编译器才能访问的到.这时不用设置GOPATH.code
当使用go build 源码,要先编译成二进制代码,再执行二进制代码的方式来运行程序.对象
设置GOPATH的缘由blog
从 Go 1.8 版本开始,Go 开发包在安装完成后,将 GOPATH 赋予了一个默认的目录开发
若是不使用工做目录的概念,在多人开发时,每一个人有一套本身的目录结构,读取配置文件的位置不统一,输出的二进制运行文件也不统一,这样会致使开发的标准不统一,影响开发效率编译器
工做空间中的内容:源码
GOPATH
下应有三个目录:自动化
src
:包含Go的源文件,它们被组织成包(每一个目录都对应一个包) src 执行go install时候必须有,此外子目录为包.包中为源码.编译
pkg
:包含包对象,也即编译好的库文件 *.a
bin
:包含可执行命令 当执行go install时会自动生成二进制文件放到这里.
go install运行时跟src/bin/pkg关联.而go run/go build就无论工做目录了.只在当前目录下工做.