Idflags 不適用於設定 go build 的版本

Idflags 不適用於設定 go build 的版本

我對使用 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'"

不幸的是,我最終遇到了完全相同的問題,並且身份標誌似乎什麼也沒做,可執行檔仍然建置沒有錯誤。我嘗試刪除並重新開始複製並運行命令須藤,還沒有設法讓它發揮作用,並且不確定我做錯了什麼。這就是我正在嘗試的去建造身份標誌:

媒體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“版本”時,我使用了大寫的 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

相關內容