Go 命令 #
go get
等于 go get -d
加 go install
go get #
-d 只下载不安装
-u 强制使用网络去更新包和它的依赖包
-f 只有在你包含了 -u 参数的时候才有效,不让 -u 去验证 import 中的每一个都已经获取了,这对于本地 fork 的包特别有用
-v 显示执行的命令
-t 同时也下载需要为运行测试所需要的包
-fix 在获取源码之后先运行 fix,然后再去做其他的事情
-insecure 允许使用不安全的 HTTP 方式进行下载操作
go get
后面不带参数时
#
go get
等同于go install
go get -d
等同于go list
参考:
go install #
- 第一步是生成结果文件(可执行文件或者 .a 包),
- 第二步会把编译好的结果移到 $GOPATH/pkg 或者 $GOPATH/bin。
go list #
go build #
ldflags #
go tool link --help
查看 ldflags 各参数含义
-w
禁止生成 debug 信息,注意使用该选项后,无法使用 gdb 进行调试-s
禁用符号表
go build -ldflags '-w -s'
# makefile
buildInfo := " -X '$(utilImport).goVersion=$(shell $(GO) version)' -X '$(utilImport).buildTime=$(shell date +"%Y-%m-%d %H:%M:%S")' -X '$(utilImport).gitHash=$(shell git log -n1 --format="%h")' "
go build -ldflags $(buildInfo)
gcflags #
go tool compile --help
查看 gcflags 各参数含义
-N
禁止编译优化-l
禁止内联,禁止内联也可以一定程度上减小可执行程序大小
go build -gcflags '-N -l'
叶王 © 2013-2024 版权所有。如果本文档对你有所帮助,可以请作者喝饮料。