上篇文章介绍了go语言开发环境的搭建,本文介绍一下go语言的工作区。在go语言的环境搭建过程中,需要了解3个环境变量:
1)GOROOT:go语言安装的根目录,上篇文章中:D:\Program Files\go
2)GOPATH:自己定义的工作空间
3)GOBIN:生成的可执行文件的路径
GOPATH是最复杂的一个环境变量。GOPATH是多个工作区的目录路径。这些路径存放go语言的源码文件、归档文件和编译后的可执行文件。要理解这个概念,就需要理解下面的3个知识:
1.源码组织方式
同java类似,go语言的安装也已代码包为单位,代码包可以有子包。在使用程序的实体之前,需要先导入程序的代码包。导入路径就是从src子目录到程序实际的存储目录。go语言的源码包一般放在GOPATH包含的某个工作区中src目录的某个子包中。
2.源码安装后的结果
安装后如果产生了归档文件,即.a文件(程序编译后生成的静态文件),会存放在pkg目录,如果产生了可执行文件,会存放在工作区的bin目录下。比如,一个目录结构如下:
src/a/b/c,执行go install src/a/b/c后,产生的归档文件为pkg/a/b/c.a。
所以在一个工作区中,src、pkg、bin三个目录是平级的。如下图:
3.go安装和构建
构建和安装代码包的时候都会执行编译、打包等操作,并且,这些操作生成的任何文件都会先被保存到某个临时的目录中。
1)构建命令: go build
如果构建库源码文件,结果文件只会存在于临时目录中。构建主要是为了检查和验证。如果构建命令源码文件,结果文件会被搬运到源码文件所在的目录中。
2)安装命令:go install
安装操作会先执行构建,然后还会进行链接操作,并且把结果文件搬运到指定目录。
如果安装的是库源码文件,结果文件会被搬运到它所在工作区的 pkg 目录下的某个子目录中。
如果安装的是命令源码文件,结果文件会被搬运到它所在工作区的 bin 目录中,或者环境变量GOBIN指向的目录中。
有疑问加站长微信联系(非本文作者)