私は 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'"
残念ながら、私もまったく同じ問題に遭遇し、IDフラグ何も起こらないようですが、エラーもなく実行ファイルはビルドされます。削除してもう一度やり直してみましたが、git クローンそして次のコマンドを実行します須藤、まだうまく動作していないし、何が間違っているのかよくわからない。これが私がやろうとしていることです構築するとIDフラグ:
これは私のmain.goの内容で、GitHubのパスを私のIDフラグ指令
// 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