Idflags не работает для установки версии для сборки go

Idflags не работает для установки версии для сборки go

Я новичок в использовании Go и заметил, что при сборке проекта Go, который я клонировал с GitHub, я сделал следующее:

$ go build

Исполняемый файл собран, но когда я запускаю:

$ mediamtx --version

Я получаю v0.0.0

Я погуглил проблему и обнаружил, что можно задать параметр Idflags для установки версии при сборке, поэтому я попробовал:

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

К сожалению, у меня возникла та же самая проблема, иИдентификаторы флаговкажется, ничего не делает, без ошибок исполняемый файл все еще собирается. Я пробовал удалить и начать снова сgit-клони запуск команды с помощьюсудо, не удалось заставить его работать, и не уверен, что я делаю неправильно. Это то, что я пытаюсь сделатьиди стройсИдентификаторы флагов:

MediaMTX

Это содержимое моего 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

Ответ в том, что параметр «version» в Idflags чувствителен к регистру. Я использовал заглавную букву 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

Связанный контент