Go工具集

go工具集
一、go build

-gcflags: 传递给编译器的参数

-ldflags: 传递给链接器的参数

-work: 查看编译临时目录

-race: 允许数据竞争检测(仅支持amd64)

-n: 查看但不执行编译指令

-x: 查看并执行编译命令

-a: 强制重新编译所有依赖包

-v: 查看被编译的包名,包括依赖包

-p n:并行编译所使用的CPU数,默认为全部

-o:输出文件名

1.1 gcflags 传递给编译器的参数

-B 禁用边界检查

-N 禁用优化

-l 禁用函数内联

-u 禁用unsafe代码

-m 输出优化信息

-S 输出汇编代码

1.2 ldflags 传递给链接器的参数

-w 禁用DRAWF调试信息,但不包括符号表

-s 禁用符号表

-X 修改字符串符号值  -X main.VER ‘0.99’  -X main.S ‘abc’

-H 链接文件类型,其中包括windowsgui、cmd/ld/doc.go。

1.2.1 ldflags 用法

使用方法:【路径,非必需,除非有目录层次】包名.变量

Usage:[path]packege.value

用法示例:

$ go build -ldflags "-X other.VERSION=1.0.0 -X gpxj/other.VERSION=1.0.3 -X main.VERSION=1.0.0 -X 'main.BUILD_TIME=`date`' -X 'main.GO_VERSION=`go version`'" -v -o "server-${VERSION}-${COMMIT:0:7}" server.go

1.3 更多参数:

1.3.1 查看编译参数的帮助文档

        go tool compile -h

1.3.2 查看链接参数的帮助文档

        go tool link  -h

二、go install

和go build参数相同,将生成文件拷贝到bin、pkg目录,优先使用GOBIN环境变量指定的目录。

三、go clean

-n 查看但不执行清理命令

-x 查看并执行清理命令

-i 删除bin,pkg目录下的二进制文件

-r 清理所有依赖包临时目录

四、go get


-d 仅下载,不执行安装命令

-t 下载测试所需依赖包

-u 更新包包括其依赖

-v 查看并执行命令

五、go tool objdump

反汇编可执行文件

go tool objdump -s “main\.\w+” test

猜你喜欢

转载自blog.csdn.net/chinawangfei/article/details/83315027