golang build -ldflags 是Go 语言编译命令中的一个选项,用于在编译过程中向链接器(linker)传递额外的参数。这些参数可以用来设置编译后的二进制文件的元数据,如版本号、构建时间等,或者修改程序的运行时行为。 -ldflags 选项的常见用法示例 设置程序的版本号: ...
追加一条:C:\Program Files\Git\bin安装go 打开环境变量 添加GOPATH 添加到path 检验 在命令指示符...
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 ...
fmt.Println("git log:", git) } 想要在build的时候改变time和git的值,可以这么做: powershell(cmd有问题): Copy go build -ldflags "-X 'main.buildTime=$(date)' -X 'main.gitHash=$(git log --pretty=format:"%h" -1)'" main.go linux: Copy go build -ldflags "-X 'main.time=$(date ...
BUILD_TIME string GO_VERSION string ) func main() { fmt.Printf("%s\n%s\n%s\n", VERSION, BUILD_TIME, GO_VERSION) } 用如下命令编译,注意因为date和go version的输出有空格,所以main.BUILD_TIME和main.GO_VERSION必须使用引号括起来 go build -ldflags "-X main.VERSION=1.0.0 -X 'main.BUILD_TI...
go build -ldflags "-H windowsgui -X main.TaskType=PING -X main.BuildVersion=v1" -o App.exe; 例:编译的时候,带上编译的人的姓名 go build -ldflags "-X main.Developer=zhangsan" 1 main.go package main import "fmt" var Developer string ...
不过,近日我在闲逛 go nuts 时,看到一个贴子:v1.5 -ldflags -X change breaks when string has a space,谈到了这个技巧:如果要赋值的变量包含空格,需要用引号将 -X 后面的变量和值都扩起来。原来如此,再次 build 一下,还真好用: 代码语言:javascript ...
在Go 中我们可以用-X来重写一个符号定义,-X两个入参:名称和值。下面是承接前面的代码的例子: go build -o ex -ldflags="-X main.AppVersion=v1.0.0" 构建并运行程序,现在会展示在命令行中定义的版本: Version: v1.0.0 运行nm命令会看到变量已被初始化: ...
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类型...
3、编译时使用ldflags 编写config.go内容如下 packagemainimport"fmt"varmodestringfuncmain(){fmt.Println("mode value is:",mode)} 编译运行 # 编译go build -ldflags'-X main.mode=prod'config.go# 运行./config# 输出如下mode value is: prod