gitBranch= $(shell git rev-parse --abbrev-refHEAD) ldflags="-w -X ${versionDir}.gitTag=${gitTag} -X ${versionDir}.buildDate=${buildDate} -X ${versionDir}.gitBranch=${gitBranch} -X ${versionDir}.gitCommit=${gitCommit} -X ${versionDir}.gitTreeState=${gitTreeState}"# 默认执...
go build 用 -ldflags 给 go 链接器传入参数,实际是给 go tool link 的参数,可以用 go tool link --help 查看可用的参数。 常用-X 来指定版本号等编译时才决定的参数值。例如代码中定义var buildVer string,然后在编译时用go build -ldflags "-X main.buildVer=1.0" 来赋值。注意 -X 只能给string类型变...
LDFLAGS:=-ldflags"-X 'github.com/pubgo/xxx/version.GoVersion=${GoVersion}' \ -X 'github.com/pubgo/xxx/version.BuildTime=${BuildTime}' \ -X 'github.com/pubgo/xxx/version.GoPath=${GOPATH}' \ -X 'github.com/pubgo/xxx/version.CommitID=${CommitID}' \ -X 'github.com/pubgo/xxx...
编译测试: gobuild -a -ldflags"-X main.version=1.2 -X pkg/pkg.version=1.3"-o bin/demomain.go./bin/demo1.2pkg.version: N/A 如上发现测试并不生效,网上有些说法是要相对GOPATH下去写,要强制带上工程名,例如:demo/pkg/pkg.version,这种是可以生效的,但是如果工程路径不止一级,例如github.com/csi/...
case 2:注入变量$ go build -ldflags "-X main.Version=0.0.9" -o main main.go $ ./main 0.0.9 1 2 3可以观察到,在编译构建可执行文件时,通过命令,注入main包的Version变量值。2.常用形式在编译构建时注入变量,常常用于可执行文件版本等信息的构建。举例如下:...
第3、4、5 行分别用 git 命令拿到本次提交的 commit-id,author,分支名;第 6 行用 “,” 将三者组合成一个字符串;第 8 行用go build命令,设置 ldflags,将变量$SERVICE_INFO注入到包变量codebase/build-x/compile_info.ServiceInfo,这样在 Go 代码中就可以直接用了。
ldflags 代表链接器标志,用于将标志传递给底层链接器。根据文档:
go build -ldflags="-w -s" 使用upx工具压缩 upx 编译信息写入 使用-ldflags设置编译信息: go build -o app-service -ldflags \"-X main.buildTime=`date +%Y-%m-%d,%H:%M:%S` -X main.buildVersion=1.0.0 -X 'main.goVersion=$(go version)' -X main.gitCommitID=`git rev-parse HEAD`" ...
在go build 命令里有一个-ldflags参数,该参数可以接收-Ximportpath.name=value形式的值,该值就是实现信息动态注入的核心入口。 以下面一段例子来演示 先定义 version,buildTime,osArch 三个变量 然后将这三个变量的值打印出来 packagemainimport"fmt"var(versionstringbuildTimestringosArchstring)funcmain(){fmt.Pr...
上一章节学习了 -ldflags -X 的用法,-lgflags 还有两个常用的参数: 1. -w 去掉调试信息 2. -s 去掉符号表 写一个什么都不干的 main.go 执行 go build -o=./main main.go && ls -lh main: #gobuild-o=./main main.go&&ls-lh main-rwxr-xr-x1wangbo staff1.2M12011:02main ...