go 命令

go 命令

go build

这个命令主要用于测试编译。在包的编译过程中,会同时编译与之相关联的包。

  • 普通包: 如果你需要在$GOPATH/pkg 下生成相应的文件,那就得执行 go install 了。
  • main包: 它就会在当前目录下生成一个可执行文件,如果你需要在$GOPATH/bin 下生成相应的文件,需要执行 go install,或者使用 go build -o 路径/a.exe

建议使用 -gcflags "-N -l" 参数关闭编译器代码优化和函数 内联,避免断点和单步执行无法准确对应源码行,避免小函数和局部变量被优化掉。-o 指定存放位置。

go build -gcflags "-N -l" -o test test.go

  • 只编译一个文件, go build 后加上文件名,如go build a.go
  • 默认使用package名,指定名用-o 参数
  • 忽略 "_" 和 "." 开头的文件
  • 针对不同系统,可以根据不同的操作系统后缀来命名文件。

如一个读取数组的程序,它对于不同的操作系统可能有如下几个 源文件:

array_linux.go 
array_darwin.go 
array_windows.go 
array_freebsd.go

go build 的时候会选择性地编译以系统名结尾的文件(linux、darwin、windows、freebsd)。 例如 Linux 系统下面编译只会选择 array_linux.go 文件,其它系统命名后缀文件全部忽略。

go clean

这个命令是用来移除当前源码包里面编译生成的文件。这些文件包括

_obj/  旧的 object 目录,由 Makefiles 遗留
_test/  旧的 test 目录,由 Makefiles 遗留
_testmain.go  旧的 gotest 文件,由 Makefiles 遗留
test.out  旧的 test 记录,由 Makefiles 遗留
build.out  旧的 test 记录,由 Makefiles 遗留
*.[568ao]  object 文件,由 Makefiles 遗留


DIR(.exe) 由 go build 产生
DIR.test(.exe) 由 go test -c 产生
MAINFILE(.exe) 由 go build MAINFILE.go 产生

我一般都是利用这个命令清除编译文件,然后 github 递交源码,在本机测试的时候这些编 译文件都是和系统相关的,但是对于源码管理来说没必要

go fmt

格式化代码,一般用不到。

go get 拉取代码

用来动态获取远程代码包的,目前支持的有 BitBucket、GitHub、Google Code 和 Launchpad。

这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是 执行 go install。

go install

这个命令在内部实际上分成了两步操作:第一步是生成结果文件(可执行文件或者.a 包), 第二步会把编译好的结果移到$GOPATH/pkg 或者 $GOPATH/bin。

go test

自动读取源码目录下面名为*_test.go 的文件,生成并运行测试用的可执行文件。

go doc

查看对应包的文档,如 执行 go doc net/http 查看http包里面的函数.

一般使用ide 直接进去看,一般不这么用。

godoc -http=:端口号,配置GOPATH. 如 godoc -http=:8080, 浏览器中访问 http://localhost:8080,查看本地和自己写的文档

go doc fmt Printf

go fix

用来修复以前老版本的代码到新版本,例如 go1 之前老版本的代码转化到 go1

go version

查看 go 当前的版本

go env

查看当前 go 的环境变量

go list

列出当前全部安装的 package

go run

编译并运行 Go 程序

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • go grpc 初步笔记

    像许多RPC系统一样,gRPC基于定义服务的思想,指定可以使用其参数和返回类型远程调用的方法。

    solate
  • go 版本变化

    无效的 DSA 公钥可能会导致 dsa.Verify 出现故障。特别是,在精心制作的 X.509 证书链上使用 crypto/x509.Verify 可能会导致...

    solate
  • go 错误处理总结

    在使用http 接口的时候碰到返回错误 但是不知道错误在哪一行的时候可以使用这种方式。

    solate
  • go语言入门

    激活码 https://www.cnblogs.com/pig66/p/10420947.html

    lilugirl
  • Docker 镜像多阶段构建

    本文内容来自我参与维护的 《Docker 从入门到实践》 项目。 之前的做法 在 Docker 17.05 版本之前,我们构建 Docker 镜像时,通常会采用...

    康怀帅
  • 还在为Go依赖安装不上烦恼?

    打开VSCode后,新建一个xx.go文件,右下角会提示安装模块,选择install all:

    公众号guangcity
  • Go 语言分享

    Go 语言从 2009 年发布第一版开始,逐渐变的流行,被人所熟知,但是很多人可能听说过 go,但是对 go 的特性并不是很了解,这里主要介绍 go 的一些关键...

    serena
  • golang学习之win7下go环境搭建

    以下均采用windows64环境,首先是go的下载,go有msi安装安装和zip解压安装两种安装方式,使用msi安装后go环境会自动配置,zip解压后需手动配置...

    用户1141560
  • GO笔记之GO命令快速体验

    本文将在所能及的范围内,尽量地介绍GO提供的所有命令,从而实现对它们有个整体的认识。

    波罗学
  • Go命令官方指南【原译】

    如果构建的参数是.go文件的列表,则build会将它们视为指定单个包的源文件列表。

    sunsky

扫码关注云+社区

领取腾讯云代金券