Idflags 无法用于设置 go build 的版本

Idflags 无法用于设置 go build 的版本

我对使用 Go 还很陌生,我注意到当我构建 Go 项目时,我通过以下方式从 GitHub 克隆了:

$ go build

可执行文件已构建,但是当我运行时:

$ mediamtx --version

我得到 v0.0.0

我使用 Google 搜索了该问题,发现我可以设置 Idflags 参数来设置构建时的版本,因此我尝试:

go build -ldflags="-X 'github.com/bluenviron/mediamtx/internal/core.Version=v1.5.0'"

不幸的是,我最终遇到了完全相同的问题,并且标识标志似乎什么都没做,没有任何错误,可执行文件仍在构建。我尝试删除并从git 克隆并运行命令须藤,还没有成功让它工作,也不知道我做错了什么。这就是我试图去建造标识标志

媒体MTX

这是我的 main.go 的内容,我获取了 GitHub 的路径以将其包含在我的标识标志指示

// main executable.
package main

import (
        "os"

        "github.com/bluenviron/mediamtx/internal/core"
)

func main() {
        s, ok := core.New(os.Args[1:])
        if !ok {
                os.Exit(1)
        }
        s.Wait()
}

答案1

答案是 Idflags 中的“version”参数区分大小写,我使用了大写的 V “Version”,而我应该使用小写的 v “version”

go build -ldflags="-X 'github.com/bluenviron/mediamtx/internal/core.version=v1.5.0'"

是正确的 CLI 命令

解决此问题的最佳方法是参考 core.go 文件来找到版本变量声明:

~/mediamtx/internal/core/ [main] vi core.go

在我的例子中,版本变量定义为:

var version = "v0.0.0"

该问题现已解决,并且:

mediamtx --version

现在输出:

v1.5.0

相关内容