Я новичок в использовании 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-клони запуск команды с помощьюсудо, не удалось заставить его работать, и не уверен, что я делаю неправильно. Это то, что я пытаюсь сделатьиди стройсИдентификаторы флагов:
Это содержимое моего 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