环境变量介绍

GOROOT:Golang的安装路径。

GOPATH:可以理解为工作目录或者工作区,也是平时接触最多的一个变量。它可以是一个目录,可以是多个目录路径,每个目录代表一个工作区。这些目录用于放置Go语言的源码文件(src),以及安装(命令go install)后的归档文件(pkg目录)和可执行文件(bin目录)。

GOBIN:GOROOT目录下的可执行文件放置目录,一般指bin。

理解构建和安装Go的过程

go build命令

go build 有很多种编译方法,如无参数编译、文件列表编译、指定包编译等,使用这些方法都可以输出可执行文件。
go build 还有一些附加参数,可以显示更多的编译信息和更多的操作,详见下表所示。

go build编译时的附加参数
-v    编译时显示包名
-p n    开启并发编译,默认情况下该值为 CPU 逻辑核数
-a    强制重新构建
-n    打印编译时会用到的所有命令,但不真正执行
-x    打印编译时会用到的所有命令
-race    开启竞态检测

go run 命令

go run 命令会编译源码,并且直接执行源码的 main() 函数,不会在当前目录留下可执行文件。
工作目录被设置为当前目录。在 go run 的后部可以添加参数,这部分参数会作为代码可以接受的命令行输入提供给程序。
go run 不能使用“go run+包”的方式进行编译,如需快速编译运行包,需要使用如下步骤来代替:

1、使用 go build 生成可执行文件。
2、运行可执行文件。

go install 命令

go install 的功能和 go build 类似,附加参数绝大多数都可以与 go build 通用。go install 只是将编译的中间文件放在 GOPATH 的 pkg 目录下,以及固定地将编译结果放在 GOPATH 的 bin 目录下。

go install 的编译过程有如下规律:
go install 是建立在 GOPATH 上的,无法在独立的目录里使用 go install。
GOPATH 下的 bin 目录放置的是使用 go install 生成的可执行文件,可执行文件的名称来自于编译时的包名。
go install 输出目录始终为 GOPATH 下的 bin 目录,无法使用-o附加参数进行自定义。
GOPATH 下的 pkg 目录放置的是编译期间的中间文件。

go get命令

go get使用时的附加参数
使用 go get 时可以配合附加参数显示更多的信息及实现特殊的下载和安装操作,详见下表所示。

go get 使用时的附加参数
附加参数    备  注
-v    显示操作流程的日志及信息,方便检查错误
-u    下载丢失的包,但不会更新已经存在的包
-d    只下载,不安装
-insecure    允许使用不安全的 HTTP 方式进行下载操作

golang 包命名规则

第一条规则,同目录下的源码文件的代码包声明语句要一致。也就是说,它们要同属于一个代码包。这对于所有源码文件都是适用的。
第二条规则,源码文件声明的代码包的名称可以与其所在的目录的名称不同。在针对代码包进行构建时,生成的结果文件的主名
称与其父目录的名称一致。(import后面的最后一个元素是路径,就是目录,并非包名。)

(一)golang工作区相关推荐

  1. Go 学习笔记(2)— 安装目录、工作区、源码文件和标准命令

    GOROOT: Go 语言安装根目录的路径,也就是 GO 语言的安装路径. GOPATH: 若干工作区目录的路径.是我们自己定义的工作空间.在 Go Module 模式之前非常重要,现在基本上用来存放 ...

  2. Golang学习-基础命令

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. . Golang学习-基础命令 一.go run 用于运行命令源码文件,只能接收一个命令源码文件以及若干个库源码文件作为 ...

  3. golang 命令行_如何使用Golang编写快速有趣的命令行应用程序

    golang 命令行 by Peter Benjamin 彼得·本杰明(Peter Benjamin) 如何使用Golang编写快速有趣的命令行应用程序 (How to write fast, fun ...

  4. linux 和windows 下golang安装

    基于 Red Hat 的 Linux 发行版本,RHEL.Fedora.CentOS都可以使用 yum 命令来进行安装: yum install golang 要查看当前系统安装的 Go 语言版本可以 ...

  5. Linux 搭建golang开发环境

    0.创建目录 # mkdir -p /work/golang/ #cd  /work/golang/ 1.下载golang安装包: # wget https://www.golangtc.com/st ...

  6. 实习第一周(Golang)

    目录 一,序 二,基础学习 三,环境安装 四,项目操练 GO111MODULE 五,此外附上我用过的一些资料 一,序 2020年8月3我来实习了,试想一个Java都还没学会熟练使用的人,却要用gola ...

  7. Golang库学习笔记 Gin(三)

    快速入门 今天,我们将要基于一个例子,学习如何使用GIN框架. 目录 文章目录 快速入门 目录 要求 安装 1.下载并安装 gin: 2.将 gin 引入到代码中: 3.(可选)如果使用诸如 http ...

  8. go build 参数_从0开始Go语言,用Golang搭建网站

    从0开始Go语言,用Golang搭建网站 实践是最好的学习方式 零基础通过开发Web服务学习Go语言 本问适合有一定编程基础,但是没有Go语言基础的同学. 也就是俗称的"骗你"学G ...

  9. 开始Go开发之旅-Golang架构师之路系列实战

    2019独角兽企业重金招聘Python工程师标准>>> 作者: gomaster.me(冯琪超) 系列:Golang架构师之路 巧妇难做无米之炊,golang sdk就是gopher ...

最新文章

  1. OpenvSwitch — ovs-db 数据库
  2. 初学Python——面向对象编程
  3. asp.net mvc5 设置Area下的为启动页
  4. 【错误记录】PyCharm 运行 Python 程序报错 ( PEP 8: W292 no newline at end of file )
  5. PowerDesigner导入Excel/CSV
  6. Codeforces Round #403 (Div. 1, based on Technocup 2017 Finals)
  7. RHEL修改最大文件打开数,关于epoll socket Too many open files问题的解决
  8. 窗口类的注册生成和消息循环
  9. 环形队列出队的元素怎么输出出来_队列的知识讲解与基本实现(数据结构)
  10. FCLK、HCLK、PCLK
  11. 锁屏界面已由组织隐藏或管理_乐视全系列 官方终结版 完美Root 双排网速 摇晃锁屏 游戏增强 黑域 屏幕助手 高级设置 省电...
  12. Ubuntu 设置 IP 地址和 hostname
  13. Spring Boot Admin 发送监控邮件
  14. SOME/IP开源库Vsomeip分析
  15. 一线互联网大厂面试真题系统收录!轻松拿下offer
  16. POI 颜色Color
  17. TDengine极简实战:从采集到入库,从前端到后端,体验物联网设备数据流转
  18. 巴基斯坦圣诞节期间“毒酒”致42人死亡
  19. iptables 设置端口转发/映射
  20. 【SCCB接口协议简介(适用于OV系列摄像头)】

热门文章

  1. PHP 8.0 源码编译安装 JIT 尝鲜
  2. 我的第一款 Drone 插件
  3. 网络请求与本地函数调用的区别
  4. 截至2018年,目前,企业主流的消息中间件有哪些?各有什么优缺点?面试常问 RabbitMQ使用较多
  5. 翼支付和银行网络连通准备
  6. JavaFX中将FXML文件自动转换为Java代码
  7. 以ssm+mvc框架来开发一个系统的基本流程
  8. 一文弄懂什么是RPC
  9. 关于负载均衡的几个问题
  10. 基于springboot+shiro一套可落地实施安全认证框架整合