Idflags no funciona para configurar la versión para go build

Idflags no funciona para configurar la versión para go build

Soy bastante nuevo en el uso de Go y me di cuenta de que cuando construí el proyecto Go lo cloné desde GitHub a través de:

$ go build

El ejecutable está compilado, pero cuando lo ejecuto:

$ mediamtx --version

me sale v0.0.0

Busqué en Google el problema y descubrí que podía configurar el parámetro Idflags para configurar la versión en la compilación, así que intenté:

go build -ldflags="-X 'github.com/bluenviron/mediamtx/internal/core.Version=v1.5.0'"

Desafortunadamente, terminé con exactamente el mismo problema ybanderas de identificaciónParece no hacer nada, sin errores, el ejecutable aún se compila. He probado a borrar y empezar de nuevo desde unclon de gity ejecutando el comando consudo, no he logrado que funcione y no estoy seguro de qué estoy haciendo mal. Esto es lo que estoy tratando deir a construirconbanderas de identificación:

MediosMTX

Este es el contenido de mi main.go que obtuve mi ruta para que GitHub lo incluya en mibanderas de identificacióndirectiva

// 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()
}

Respuesta1

La respuesta es que el parámetro "versión" en Idflags distingue entre mayúsculas y minúsculas. Estaba usando una "Versión" V mayúscula cuando debería haber estado usando una "versión" v minúscula.

go build -ldflags="-X 'github.com/bluenviron/mediamtx/internal/core.version=v1.5.0'"

es el comando CLI correcto

Su mejor referencia para solucionar este problema es consultar su archivo core.go para encontrar la declaración de la variable de versión:

~/mediamtx/internal/core/ [main] vi core.go

En mi caso la variable versión se definió como:

var version = "v0.0.0"

El problema ahora está resuelto y:

mediamtx --version

Ahora produce:

v1.5.0

información relacionada