我對使用 Go 相當陌生,當我建立從 GitHub 複製的 Go 專案時,我注意到:
$ go build
可執行檔已構建,但是當我運行時:
$ mediamtx --version
我得到 v0.0.0
我用 Google 搜尋了這個問題,發現我可以設定 Idflags 參數來設定建置版本,所以我嘗試了:
go build -ldflags="-X 'github.com/bluenviron/mediamtx/internal/core.Version=v1.5.0'"
不幸的是,我最終遇到了完全相同的問題,並且身份標誌似乎什麼也沒做,可執行檔仍然建置沒有錯誤。我嘗試刪除並重新開始複製並運行命令須藤,還沒有設法讓它發揮作用,並且不確定我做錯了什麼。這就是我正在嘗試的去建造和身份標誌:
這是我的 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“版本”時,我使用了大寫的 V“版本”
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