这个命令主要用于测试编译。在包的编译过程中,会同时编译与之相关联的包。
建议使用 -gcflags "-N -l" 参数关闭编译器代码优化和函数 内联,避免断点和单步执行无法准确对应源码行,避免小函数和局部变量被优化掉。-o 指定存放位置。
go build -gcflags "-N -l" -o test test.go
go build a.go
如一个读取数组的程序,它对于不同的操作系统可能有如下几个 源文件:
array_linux.go
array_darwin.go
array_windows.go
array_freebsd.go
go build 的时候会选择性地编译以系统名结尾的文件(linux、darwin、windows、freebsd)。 例如 Linux 系统下面编译只会选择 array_linux.go 文件,其它系统命名后缀文件全部忽略。
这个命令是用来移除当前源码包里面编译生成的文件。这些文件包括
_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 递交源码,在本机测试的时候这些编 译文件都是和系统相关的,但是对于源码管理来说没必要
格式化代码,一般用不到。
用来动态获取远程代码包的,目前支持的有 BitBucket、GitHub、Google Code 和 Launchpad。
这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是 执行 go install。
这个命令在内部实际上分成了两步操作:第一步是生成结果文件(可执行文件或者.a 包), 第二步会把编译好的结果移到$GOPATH/pkg 或者 $GOPATH/bin。
自动读取源码目录下面名为*_test.go 的文件,生成并运行测试用的可执行文件。
查看对应包的文档,如 执行 go doc net/http
查看http包里面的函数.
一般使用ide 直接进去看,一般不这么用。
godoc -http=:端口号,配置GOPATH. 如 godoc -http=:8080
, 浏览器中访问 http://localhost:8080
,查看本地和自己写的文档
go doc fmt Printf
用来修复以前老版本的代码到新版本,例如 go1 之前老版本的代码转化到 go1
查看 go 当前的版本
查看当前 go 的环境变量
列出当前全部安装的 package
编译并运行 Go 程序