Go语言核心36讲笔记01--工作区和GOPATH


1.设置GOPATH有什么意义?

环境变量 GOPATH 的值可以是一个目录的路径,也可以包含多个目录路径,每个目录都代表 Go 语言的一个工作区(workspace)。这些工作区用于放置 Go 语言的源码文件(source file),以及安装(install)后的归档文件(archive file,也就是以“.a”为扩展名的文件)和可执行文件(executable file)。

2.Go语言的组织方式

  • Go语言的源码是以代码包为基本组织单位
  • 在工作区,一个代码包的导入路径就是从src子目录到该包的实际存储位置的相对路径
  • Go语言源码的组织方式就是以环境变量GOPATH、工作区、src目录和代码包为主线的。一般情况下Go语言的源码文件都需要被存放在环境变量GOPATH包含的某个工作区中的src目录下的某个代码包中。

3.源码安装结果

在安装源码后如果产生了归档文件则会放置在工作区的pkg子目录,如果产生了可执行文件则会放置在工作区的bin子目录。

4.构建和安装Go程序的过程

  • 构建使用命令go build,安装使用命令go install。构建和安装代码包的时候都会执行编
    译、打包等操作,并且这些操作生成的任何文件都会先被保存到某个临时的目录中。
  • 如果构建的是库源码文件,那么操作的结果文件只会存在于临时目录中。这里的构建的主要意义在于检查和验证;如果构建的是命令源码文件,那么操作的结果文件会被搬运到那个源码文件所在的目录中。
  • 安装操作会先执行构建,然后还会进行链接操作,并且把结果文件搬运到指定目录。如果安装的是库源码文件,那么结果文件会被搬运到它所在工作区的 pkg 目录下的某个子目录中;如果安装的是命令源码文件,那么结果文件会被搬运到它所在工作区的 bin 目录中,或者环境变量GOBIN指向的目录中。

5.思考题

(1)Go 语言在多个工作区中查找依赖包的时候是以怎样的顺序进行的?
答:按照GOPATH中的顺序进行查找。
(2) 如果在多个工作区中都存在导入路径相同的代码包会产生冲突吗?
答:不会,它会按照GOPATH中的顺序进行查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值