工作区和 GOPATH
在安装 Go 过程中需要配置 3 个环境变量:GOROOT、GOPATH 和 GOBIN。
GOROOT:Go 语言的安装根目录路径,也就是 Go 语言的安装路径。
GOPATH:若干工作区目录的路径。使我们自己定义的工作空间。
GOBIN:Go 程序生成的可执行文件的路径。
设置 GOPATH 有什么意义?
我们可以把 GOPATH 简单理解成 Go 语言的工作目录,它的值是一个或者多个目录路径,每个目录路径都代表着 Go 语言的一个工作区。
Go 语言源码的组织方式是怎样的?
基本组织单位是代码包。
代码包的名称一般与源码文件所在目录同名。如果不同名,则在构建、安装的过程中以代码包的名称为准。
一个代码包可以包含任意个以.go 扩展名的源码文件,这些源码文件声明属于同一个代码包。
每个代码包都有导入路径。在工作区,代码包导入路径,实际是 src 目录到该代码包的相对路径。
源码安装后,各文件如何存储?
源码文件存储在 src 子目录下。
在安装后,产生了归档文件(以.a 扩展名的文件),放进 pkg 子目录。
在安装后,产生了可执行文件,放进 bin 子目录。
构建和安装 GO 程序的过程是怎样的?
构建命令 go build
如果构建的是库源码文件,那么操作后的结果只会存储在临时文件中。这里的构建的作用只是检查和验证。
如果构建的是命令源码文件,操作的结果文件会存储在源码文件所在目录。
安装命令 go install
安装操作会先执行构建,然后还会进行链接操作,并且把结果文件搬运到指定目录。
如果安装的是库源码文件,那么结果文件会被搬运到它所在工作区的 pkg 目录下的某个子目录中。
如果安装的是命令源码文件,那么结果文件会被搬运到它所在工作区的 bin 目录中,或者环境变量 GOBIN 指向的目录中。