golang在编译时,通过加入- ldflags的参数可以替换编译的二进制包中的文件内容。例如替换版本号,构建日期,Git commit等信息时很方便。 例如替换main包中的变量如下: package main var version="N/A" func main() { fmt.Println(version) } 编译时加上参数:go build -a -ldflags "-X main.version=1.2" -o ...
追加一条:C:\Program Files\Git\bin安装go 打开环境变量 添加GOPATH 添加到path 检验 在命令指示符...
比如,你是在 OSX 下编译 linux 的可执行程序,这时候你通过-v参数查看显示的也是 linux 平台,而不是期待的 darwin 平台。 不过,近日我在闲逛 go nuts 时,看到一个贴子:v1.5 -ldflags -X change breaks when string has a space,谈到了这个技巧:如果要赋值的变量包含空格,需要用引号将 -X 后面的变量和值都...
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生成的可执行文件中注入编译时间,git hash等信息。可以在编译的时候使用-ldflags -X参数来注入变量 -ldfflags -X 可以在go install 、go build、go run 、go test中使用 go build -ldflags "-X ' packageName.varName=cmd ' " ...
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 标志可以开...
如果你想在构建过程中排除多个文件,可以在.gitignore文件中添加更多条目,或者在-ldflags参数中使用-X选项来设置变量的值。例如,如果你想排除config.json和secrets.json文件,可以这样做: go build -o myapp -ldflags="-X main.configFile=./config.json -X main.secretsFile=./secrets.json" 复制代码 在这个例子...
上一章节学习了 -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 ...
主要用法 -ldflags -X importpath.name=value,参考 https://golang.org/cmd/link/,使用此方法你可以为程序嵌入其他元信息。 -X importpath.name=value Set the value of thestringvariable in importpath named name to value.This is only effectiveifthe variable is declared in the source code either unin...
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类型...