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 ...
flags="-X main.buildstamp=`date -u '+%Y-%m-%d_%I:%M:%S%p'` -X main.githash=`git describe --long --dirty --abbrev=14`"go build-ldflags"$flags"-x-o build-version main.go 这样编译后的程序就可以通过-v参数查看版本信息了 代码语言:javascript 代码运行次数:0 运行 AI代码解释 [root@KON...
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_TIME=`date`' -X ...
fmt.Printf("Version: %s\nBuilt: %s\nOS/Arch: %s\n",version,buildTime,osArch) } # 直接运行 $ go run main.go Version: Built: OS/Arch: # 使用-ldflags -X importpath.name参数注入变量 $ go run -ldflags "-X 'main.version=0.1' -X 'main.buildTime=2020-06-26' -X 'main.osArch=dar...
pkg/version包中的实现: base.go package version // 变量通过-ldflags -X =value在编译时传入程序中 var ( gitTag = "" // gitBranch = "" gitCommit = "$Format:%H$" gitTreeState = "not a git tree" buildDate = "1970-01-01T00:00:00Z" ...
pkg/version包中的实现: base.go package version//变量通过-ldflags -X importpath.name=value在编译时传入程序中var( gitTag=""//gitBranch =""gitCommit="$Format:%H$"gitTreeState="not a git tree"buildDate="1970-01-01T00:00:00Z")
fmt.Printf("Version:[%s]\n", VERSION) } 编译时传入变量: $ go build -ldflags "-X main.VERSION=v1.0.0-alpha1" main.go $ ./main Version:[v1.0.0-alpha1] 最终样例 如果我们直接在项目入口文件处埋入版本信息, 对项目入口侵入太大, 因此你会看到一些好的开源项目下都有一个专门的version包, 由...
go version devel go1.23-13d36a9b46 Wed May 15 21:51:49 2024 +0000 windows/amd64 $ go build -ldflags=-checklinkname=1 # linkname link: main: invalid reference to runtime.corostart linkname指令今后的发展 大趋势肯定是以后只允许handshake模式。不过作为过渡目前还是允许push模式的,并且官方应该会在...
/appWORKDIR /appRUN go env -w GOPROXY="goproxy.cn,direct"RUN go build -ldflags="-w -s" -o demo-plugin FROM alpineWORKDIR /appCOPY --from=builder /app/demo-plugin /app/demo-plugin # static fileCOPY ./html ./htmlENTRYPOINT ["/app/demo-plugin"] Copy 编译镜像 docker build -f your...
问如何在Golang build中使用-ldflags -X设置包变量ENgolang包的使用依赖一个重要的环境变量:GOPATH,...