亲测GO环境搭建,理解go build、go install、go get

栏目: Go · 发布时间: 6年前

内容简介:秉承着作为一个新人,要有着“指哪打哪”的觉悟。在老大的需求下,顶上前端的空缺先干阵子前端。当然,在工作之余还是要好好朝着既定的方向努力的,实习结束后还了电脑,这次毕业再来换了新Mac,重新搭下Go的环境,顺便好好总结下,以后随着学习的深入,也会持续更新。

前言:

秉承着作为一个新人,要有着“指哪打哪”的觉悟。在老大的需求下,顶上前端的空缺先干阵子前端。当然,在工作之余还是要好好朝着既定的方向努力的,实习结束后还了电脑,这次毕业再来换了新Mac,重新搭下 Go 的环境,顺便好好总结下,以后随着学习的深入,也会持续更新。

GO下载:

GO语言中文网下载: https://studygolang.com/dl

Mac下直接通过brew instatll go指令即可完成下载安装

GO环境变量配置:

$GOROOT=/usr/local/go                        GO安装目录

$GOPATH=/usr/local/var/www/go          GO工作目录

$GOBIN=$GOPATH/bin                          GO可执行文件目录

$PATH=$PATH:$GOBIN:$GOROOT/bin  将GO可执行文件加入PATH中,使GO指令与我们编写的GO应用可以全局调用

亲测GO环境搭建,理解go build、go install、go get

$GOPATH工作目录结构,约定有三个子目录(需要自行创建):

src ——存放源代码文件

pkg——存放编译后的文件

bin ——存放编译后的可执行文件

示例(首先使用go推荐的go build方式构建应用,稍后会说到其他的方式):

通过我们的操作,在最终测试成功后,$GOPATH的目录树应该如下所示:

亲测GO环境搭建,理解go build、go install、go get

具体操作如下:

1、创建应用包mypkg: 切到【$GOPATH/src】目录下,创建一个mypkg目录,在mypkg目录下,新建一个hello.go,内容如下:

亲测GO环境搭建,理解go build、go install、go get

2、编译应用包(在此Demo中,此步骤并不必要,在此只是为了展示go install编译效果): 在刚刚的目录下执行【go install】指令或者在任意目录下执行【go install mypkg】指令,如果代码有错或依赖找不到会报错,如果正确则没有任何提示。此时,你可以切到【$GOPATH/pkg】目录下,会发现多了一个名为【$GOOS_$GOARCH】的目录,切进该目录,就会看到刚刚编译生成的文件mypkg.a文件。(其中$GOOS与$GOARCH的具体值可以通过【go env】指令查询,更多详情可参看: http://wiki.jikexueyuan.com/project/go-command-tutorial/0.14.html

亲测GO环境搭建,理解go build、go install、go get

3、创建新应用包myapp,创建新文件main.go(同步骤1),import引入mypkg包 ,内容如下:

亲测GO环境搭建,理解go build、go install、go get

4、构建可执行文件: 在myapp目录下,使用【go build】指令,会在当前目录下生成一个myapp的可执行文件,这个可执行文件不依赖其他文件,复制到任何目录下都可通过【./myapp】执行,复制到任何$PATH配置的目录中都可通过【myapp】全局执行。

亲测GO环境搭建,理解go build、go install、go get

亲测GO环境搭建,理解go build、go install、go get

亲测GO环境搭建,理解go build、go install、go get

总结: 我们在这个Demo里主要用到了两个GO指令,【go install】与【go build】,他们的区别如下:

【go build】指令的作用是: 在当前目录下编译生成可执行文件。注意,go build指令会调用所有引用包的源码,重新编译,而不是直接使用pkg里的编译后文件,如果在【$GOROOT】与【$GOPATH】下没有找到import引入包的项目源码,就会报错。在本demo里,main.go中import引入了"mypkg"包,如果我删除【$GOPATH/src/mypkg】源码,执行【go build】指令,会报错如下:

亲测GO环境搭建,理解go build、go install、go get

【go install】指令的作用是: 编译源代码,如果为可执行文件(package "main"且包含main方法),则会编译生成可执行文件到【$GOPATH/bin】目录下;可执行文件import引入的其他包,就会被编译到【$GOPATH/pkg/$GOOS_$GOARCH】目录下。

(关于go的导入和编译,如果有不清楚的,可以看下这篇博客 https://studygolang.com/articles/3189

我们会发现: 【go install】也可以完成类似【go build】的功能,区别在于【go install】会生成二进制文件到【$GOPATH/pkg/$GOOS_$GOARCH】目录下(这个二进制文件对于我们并没什么意义),但【go install】会把可执行文件自动生成到【$GOBIN】目录下,这是在一开始被配置到【$PATH】中了,这样就可以使项目可执行文件能被方便的全局调用。

如果在本Demo中,使用【go install】构建可执行文件

我们编写好源代码文件时,目录树如下:

亲测GO环境搭建,理解go build、go install、go get

切到myapp目录下,执行【go install】指令,会生成如下结构目录树:

亲测GO环境搭建,理解go build、go install、go get

此时就可以通过【myapp】全局执行了!

其他指令:

go env指令可检查go环境

亲测GO环境搭建,理解go build、go install、go get

go version查看go版本

亲测GO环境搭建,理解go build、go install、go get

go get可以暂时理解为git clone到【$GOPATH/src】 + go install


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

HTML & CSS设计与构建网站

HTML & CSS设计与构建网站

[美] Jon Duckett / 刘涛、陈学敏 / 清华大学出版社 / 2013-1 / 59.80元

欢迎您选择一种更高效的学习HTML和CSS的方式。不管您设计和建立新网站,还是想更好地控制现有网站,都可以在《HTML & CSS 设计与构建网站》一书的指导下创建出用户友好、令用户赏心悦目的Web内容。我们知道,编码是一项令人望而生畏的工作,而本书却采用有别于许多传统编程书籍的新颖编排方式,将使您收到事半功倍的学习效果。 每一页都在短小精悍的示例代码的引导下,简明直观、直截了当地阐述一个新......一起来看看 《HTML & CSS设计与构建网站》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试