go build
go build 命令用来编译构建项目,编译时会搜索当前目录下的所有 .go 文件,并在当前目录下生成与目录同名的可执行文件。
编译参数
go build -gcflags "-N -l -u"参数说明
- -N:禁用优化
- -l: 禁用函数内联
- -u: 禁用unsafe代码
- -m:输出优化信息
- -S: 输出汇编代码
链接参数
go build -ldflags "-X main.VERSION=1.0.0 -X 'main.BUILD_TIME=`date`'"参数说明
- -w:禁用调试信息,但不包括符号表;此时无法使用gdb调试
- -s:禁用符号表
- -X:修改程序中string类型的值,如上面例子中会修改main包中的VESION和BUILD_TIME两个字符串的值。
竞态检测
go build -race 设置 -race 标志可以开启竞态检测器,程序运行结束后,会将多个 goroutine 竞争访问的变量信息打印出来,用于调试。
go vet
go vet 是一个检查源码中静态错误的工具,可以检测出任何可疑,异常或者无用的代码。
go vet 是 go tool vet 的简单封装,go vet 只能检测当前目录下的 go 源文件,不能递归子目录。
go env
打印 go 的环境信息
gofmt
格式化代码风格为官方统一风格。
gofmt -w ./go version
打印 go 的版本