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应用可以全局调用

$GOPATH工作目录结构,约定有三个子目录(需要自行创建):
src ——存放源代码文件
pkg——存放编译后的文件
bin ——存放编译后的可执行文件

示例(首先使用go推荐的go build方式构建应用,稍后会说到其他的方式):
通过我们的操作,在最终测试成功后,$GOPATH的目录树应该如下所示:
具体操作如下:
1、创建应用包mypkg:切到【$GOPATH/src】目录下,创建一个mypkg目录,在mypkg目录下,新建一个hello.go,内容如下:
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)
3、创建新应用包myapp,创建新文件main.go(同步骤1),import引入mypkg包,内容如下:
4、构建可执行文件:在myapp目录下,使用【go build】指令,会在当前目录下生成一个myapp的可执行文件,这个可执行文件不依赖其他文件,复制到任何目录下都可通过【./myapp】执行,复制到任何$PATH配置的目录中都可通过【myapp】全局执行。
总结:我们在这个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 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】构建可执行文件:
我们编写好源代码文件时,目录树如下:
切到myapp目录下,执行【go install】指令,会生成如下结构目录树:
此时就可以通过【myapp】全局执行了!

其他指令:
go env指令可检查go环境
go version查看go版本
go get可以暂时理解为git clone到【$GOPATH/src】 + go install

亲测GO环境搭建,理解go build、go install、go get相关推荐

  1. 英皇cms影视网站系统源码_多种模板_自带采集_支持APP+pc+wap三端_(亲测可用有搭建教程)

    源码介绍 影视网站源码,自带采集功能多入口,带会员,卡密,代理等功能,免费模板可自选 支持三端:pc+wap+app端,支持视频下载,有直播,开通会员等功能,带短视频,论坛等等功能自行搭建查看,一款功 ...

  2. 亲测生产环境一年多的真正免费的网管软件,功能强大无任何限制,公布个人电话欢迎吐槽...

    亲测生产环境一年多的真正免费的网管软件,功能强大无任何限制,公布个人电话欢迎吐槽 2015年在51CTO论坛里看到有人在推荐,切身体会很多人在寻找这种好点的真正软件,自己在公司内部一个500多台网络设 ...

  3. 亲测~亲测~人人商城搭建系列遇到的问题坑和研究解决的办法

    我是自己研究成功修复人人商城的,自己搭建的服务器,如果有相似问题请联系我,修复成功的问题有如下: 1.搭建好后 后台无法显示商品链接二维码 2.推广二维码和超级海报无法显示,包括公众号回复关键字回复图 ...

  4. 深入谷歌开源项目【1】 - Camer2 - 环境搭建和源码编译

    前言:搞机器视觉,目前一般都有用摄像模组,或者工业相机,可是如果要搞到消费类,手机却不行.因为,手机上有个各种特效,这些都会对视觉效果有影响.所以,要在手机上搞,必须对手机的系统上的摄像头应用能够底层 ...

  5. ROS机器人(一) -- 环境搭建

    开发环境: ubuntu18.04 虚拟机及ubuntu系统可官网下载,本文直接提供网盘连接,有需要可自取 链接:https://pan.baidu.com/s/1f7ZPO9cTN1TPVOYlTT ...

  6. 如何用php农场项目,2020全新亲测php农场游戏源码-金币菇种植理财区块链源码 带商城系统...

    2020全新亲测php农场游戏源码-金币菇种植理财区块链源码 带商城系统+抽奖系统+独家搭建教程 金币菇一款复利理财游戏,在这里大家可以更轻松.愉快的进行理财投资!本源码是一套理财游戏盘系统,蘑菇只是 ...

  7. python遇到天猫反爬虫_selenium 淘宝登入反爬虫解决方案(亲测有效)

    前言 目前在对淘宝进行数据爬取的时候都会碰到,登入时的滑块问题,无论是手动还是脚本都不成功.这里的很重要一个原因是很多的网站都对selenium做了反爬虫机制.接下来是笔者参考网上的网友们的方法亲自测 ...

  8. CentOS7 安装RabbitMQ 亲测(编写中,有大神请帮忙指点下文中遇到的问题,谢谢)...

    为什么80%的码农都做不了架构师?>>>    CentOS7 安装RabbitMQ 亲测 我按照别的博文,使用 yum install erlang 命令安装了erlang,然后再 ...

  9. Mac VSCode OpenGL环境搭建

    Mac VSCode OpenGL环境搭建 1.安装glfw brew install glfw 2.下载glad https://glad.dav1d.de/ 选择合适的版本后 拷贝glad文件夹到 ...

最新文章

  1. 复旦邱锡鹏团队:Transformer最新综述!
  2. 在laravel视图中直接使用{{ csrf_token() }}被翻译成英文显示的处理方法
  3. 南华大学java补考_关于2017年秋季学期学生补考报名及成绩复核的通知
  4. Linux线程——线程创建和基本使用(多线程并发)
  5. 第一章:Java语言概述
  6. linux mysql 加固_apache+mysql+php安全加固配置说明
  7. python mq_python测试rabbitmq的消息收发
  8. thinkphp5连接数据库mysql_ThinkPHP学习(三)配置PHP5支持MySQL,连接MySQL数据库
  9. 第四章节 窗体应用(Form窗体)
  10. 训练赛20160403
  11. BAT判断一个目录是否存在
  12. 高校科研管理系统源代码_高校科研信息管理系统
  13. en结尾的单词_en后缀形容词——动词
  14. AT89C51中断模板(宏定义)
  15. 【非原创 遥感卫星信息整理汇总-02】国外遥感卫星信息汇总
  16. Java 异步方法转同步
  17. zemax模拟ld_使用ZEMAX序列模式模拟激光二极管光源
  18. 电脑使用技巧(Win10修改窗口背景颜色)
  19. 计算机组成原理ACC中文含义,计算机组成原理 作业一
  20. 导入Excel文件的各种常见方法

热门文章

  1. OpenCV使用MSER检测末端区域的实例(附完整代码)
  2. vector和deque的区别?
  3. C++中4种强制类型转换 ?
  4. QT的QMultiMap类的使用
  5. QT的QMenuBar类的使用
  6. C++STL常用算术生成算法
  7. Linux RedHat下安装eclipse-standard-kepler-SR1-linux-gtk.tar.gz
  8. Oracle实例和服务知识点
  9. 处理字符串_7_判断字符串是字符串数字型
  10. c语言字母输出什么意思,C语言中字符的输入输出以及计算字符个数的方法详解...