Ich bin ein ziemlicher Neuling in der Verwendung von Go und mir ist beim Erstellen des Go-Projekts aufgefallen, dass ich es von GitHub geklont habe über:
$ go build
Die ausführbare Datei wird erstellt, aber wenn ich sie ausführe, geschieht Folgendes:
$ mediamtx --version
Ich bekomme v0.0.0
Ich habe das Problem gegoogelt und herausgefunden, dass ich den Parameter Idflags festlegen kann, um die Version beim Build festzulegen. Also habe ich Folgendes versucht:
go build -ldflags="-X 'github.com/bluenviron/mediamtx/internal/core.Version=v1.5.0'"
Leider hatte ich genau das gleiche Problem undID-Flaggenscheint nichts zu tun, ohne Fehler wird die ausführbare Datei immer noch erstellt. Ich habe versucht, sie zu löschen und von einemGit-Klonund Ausführen des Befehls mitsudo, habe es nicht geschafft, es zum Laufen zu bringen, und bin mir nicht sicher, was ich falsch mache. Das ist, was ich versuchebauemitID-Flaggen:
Dies ist der Inhalt meiner main.go, für den ich meinen Pfad für GitHub erhalten habe, um ihn in meineID-FlaggenRichtlinie
// 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()
}
Antwort1
Die Antwort ist, dass der Parameter „Version“ in Idflags zwischen Groß- und Kleinschreibung unterscheidet. Ich habe „Version“ mit einem großen V geschrieben, obwohl ich „Version“ mit einem kleinen v hätte schreiben sollen.
go build -ldflags="-X 'github.com/bluenviron/mediamtx/internal/core.version=v1.5.0'"
ist der richtige CLI-Befehl
Um dieses Problem zu beheben, können Sie am besten in Ihrer Datei core.go nach der Deklaration der Versionsvariable suchen:
~/mediamtx/internal/core/ [main] vi core.go
In meinem Fall wurde die Versionsvariable wie folgt definiert:
var version = "v0.0.0"
Das Problem ist jetzt behoben und:
mediamtx --version
Gibt jetzt Folgendes aus:
v1.5.0