1、设置GOPATH有什么意义
GPATH是Go语言的工作目录,它的值是一个目录的路径,也可以是多个目录路径,每个目录都代表Go语言的一个工作区。我们要利用这些工作区,去放置Go语言的源码文件(source file),以及安装(install)后的归档文件(archive file,也就是以“.a”为扩展名的文件)和可执行文件(executable file)
2、Go语言源码的组织方式
Go语言的源码是以代码包为基本组织单位,在文件系统中,代码包与目录是一一对应的。目录有子目录,代码包也有子包。
代码包的名称一般会与源码文件所在的目录同名。如果不同名,那么在构建、安装的过程中会以代码包名为准
每个代码包都会有导入路径,代码包的导入路径是其他代码在使用该包中的程序实体时,需要引入的路径,这个路径实际上就是src子目录到该包的实际存储位置
3.Go语言源码安装后的结果
GOPATH下一般有3个目录,存放源码文件的src目录,存放归档文件的pkg目录和存放可执行文件的bin目录。
归档文件的相对目录与pkg目录之间还有一级目录,叫做平台相关目录。平台相关目录的名称是由build(也称“构建”)的目标系统、下划线和目标计算架构的代号组成。
源码文件会以代码包的形式组织起来,一个代码包其实就对应一个目录。安装某个代码包而产生的归档文件是与这个代码包同名的。放置它的相对目录就是该代码包的直接父级目录
我的GOPATH是图中的gowork

4.构建和安装Go程序的过程
构建使用go build, 安装使用go install 。构建和安装代码包的时候都会执行编译、打包等操作。并且,这些操作生成的任何文件都会先被保存到某个临时的目录中。
如果安装的是库源码文件,那么结果文件会被搬运到它所在工作区的pkg目录下的某个子目录中
如果安装的是命令源码文件,那么结果文件会被搬运到它所在工作区的bin目录中,或者环境变量GOBIN指向的目录中
网友评论