Go 命令

Go 命令 #

go get 等于 go get -dgo 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 #

  1. 第一步是生成结果文件(可执行文件或者 .a 包),
  2. 第二步会把编译好的结果移到 $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'

本文访问量

本站总访问量

本站总访客数