当main.go中未定义变量时,go build -ldflags不起作用

时间:2019-07-29 03:14:10

标签: go ldflags

在包含文件中定义了Version变量时,

go build -ldflags无法正常工作。在这种情况下,如何使用ldflags修改版本信息。

// main.go
package main

import (
    . "./utils"
    "fmt"
)

func main() {
    fmt.Println("print info:")
    VersionInfo()
}

// utils/version.go
package utils

import "fmt"

var (
    Version    = "1.0.0"
    AuthorName = "fu"
    BuildTime  = "not set."
    VersionId  = "not set."
)

func VersionInfo() {
    fmt.Printf("Version:%s\nAuthor: %s\n", Version, AuthorName)
    fmt.Printf("BuildTime:%s\nBuildVersionId:%s\n\n", BuildTime, VersionId)
}

运行go build -ldflags "-X main.Version=11111"后,编译成功。 但demo.exe仍将使用默认版本信息。

λ demo.exe
print info:
Version:1.0.0
Author: fu
BuildTime:not set.
BuildVersionId:not set.

在这种情况下,如何使用ldflags修改版本信息。

0 个答案:

没有答案