go 命令

go 命令

go build

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

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

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

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

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

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

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 递交源码,在本机测试的时候这些编 译文件都是和系统相关的,可是对于源码管理来讲不必ide

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 程序

相关文章
相关标签/搜索