在开始学习go语言的时候,新手总是会遇到这样那样的问题,
怎么安装go语言,这里就不再详细说明,根据自己的机器来安装合适的版本,
Mac系统直接运行brew即可:
接下来说一下 安装之后的设置:
大体我们需要设置3个环境变量,即GOROOT、GOPATH和GOBIN。其中,GOPATH背后的概念是最多的,也是最重要的。
我们先来说一下GOPATH,go1.8之前必须设置这个变量,从go 1.8开始,GOPATH环境变量现在有一个默认值,就是在用户根目录的 go目录。
答案是: 环境变量GOPATH的值可以是一个目录的路径,也可以包含多个目录路径,如果是多个目录,用: 进行分割,每个目录都代表Go语言的一个工作区(workspace)。这些工作区用于放置Go语言的源码文件(source file)目录src ,以及安装(go install)后的中间文件 目录pkg 和可执行文件(executable file)目录bin。
这个问题其实主要考察了4个知识点,分别是:
Go语言的源码是以代码包为基本组织单位的。
一个代码包中可以包含任意个以.go为扩展名的源码文件。
这些源码文件都需要被声明为属于同一个代码包。即所有的文件都必须以 package xxx 开始
代码包的名称一般会与这些源码文件所在的目录同名。如果不同名,那么在构建、安装的过程中会以代码包名称为准。
代码包的导入路径是其他代码在使用该包中的程序实体时需要引入的路径。在实际使用某个功能之前,我们必须先导入其所在的代码包。 import xxx 。
在工作区中,一个代码包的导入路径实际上就是从src子目录,到该包的实际存储位置的相对路径。
install之后的结果存放的目录是在pkg目录下,这里还有一级平台目录叫做平台相关目录。平台相关目录跟目标操作系统有关,是由目标操作系统、下划线和目标计算架构的代号组成的。例如:darwin_amd64 Mac下的目录,这个是由几个环境变量组成
构建使用命令go build,安装使用命令go install,
构建和安装代码包的时候都会执行编译、打包等操作,并且这些操作生成的任何文件都会先被保存到某个临时的目录中。
go build 是lib库文件(即package 非main的包),那么操作的结果文件只会存在于临时目录中。这里的构建的主要意义在于检查和验证。
go build是命令文件(即package 为main的包),那么会编译打包,在源码文件目录生成一个可执行文件。
go install 操作会先执行构建,然后还会进行链接操作,并且把结果文件搬运到指定目录。
如果是lib库源码文件,那么结果文件会被搬运到它所在工作区的pkg目录下的平台相关目录中。
如果是命令源码文件,那么结果文件会被搬运到它所在工作区的bin目录中,或者环境变量GOBIN指向的目录中。
这里要注意,如果是设置了多个工作区,那么 GOBIN 是一定要设置的,要不然 go install 就会报错了。
go build命令用于编译我们指定的源码文件或代码包以及它们的依赖包。
那么我们怎么确定哪些代码包被编译了呢?有两种方法。
Go语言提供的很多工具都是在GOPATH和工作区的基础上运行的,比如上面提到的 go build 、 go install 和 go get ,这三个命令,所以 设置GOPATH和工作区才比较重要。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有