我对使用 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 克隆并运行命令须藤,还没有成功让它工作,也不知道我做错了什么。这就是我试图去建造和标识标志:
这是我的 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