golang 编译期设置变量值(备忘)

说明

本文演示给程序打上时间戳,并输出

目录结构

fananchong@localhost:~/test$ tree
.
├── go.mod
├── g.sh
├── main.go
└── version
    └── version.go

main.go

package main

import (
        "fmt"
        "os"
        "test/version"
)

func main() {
        args := os.Args
        if len(args) == 2 && (args[1] == "--version" || args[1] == "-v") {
                fmt.Printf("Build Time : %s\n", version.Buildstamp)
                return
        }
}

version.go

package version

var Buildstamp = ""

g.sh

#!/bin/bash

go build -ldflags "-X test/version.Buildstamp=`date -u '+%Y-%m-%d_%I:%M:%S%p'`" -o test .

输出

fananchong@localhost:~/test$ ./test -v
Build Time : 2020-06-23_09:55:30AM

以上

猜你喜欢

转载自blog.csdn.net/u013272009/article/details/106928787