Heim >Backend-Entwicklung >Golang >Kompilieren Sie das Golang-Paket in Yocto

Kompilieren Sie das Golang-Paket in Yocto

WBOY
WBOYnach vorne
2024-02-09 20:10:09675Durchsuche

Kompilieren Sie das Golang-Paket in Yocto

Der PHP-Editor Strawberry führt Sie in die Methode zum Kompilieren des Golang-Pakets in Yocto ein. Yocto ist ein Open-Source-Embedded-Linux-Build-System und Golang ist eine leistungsstarke Programmiersprache. Die Kombination dieser beiden Sprachen kann für mehr Flexibilität und Effizienz bei der Entwicklung eingebetteter Geräte sorgen. Das Kompilieren von Golang-Paketen erfordert einige spezifische Schritte und Konfigurationen. In diesem Artikel werden wir detailliert beschreiben, wie Sie diesen Prozess in Yocto erfolgreich abschließen können. Unabhängig davon, ob Sie Anfänger oder erfahrener Entwickler sind, bietet Ihnen dieser Artikel nützliche Anleitungen und Tipps, mit denen Sie die Fähigkeiten zum Kompilieren von Golang-Paketen in Yocto problemlos erlernen können.

Frageninhalt

Ich versuche, ein Yocto-Rezept zu schreiben, um das https://github.com/bluenviron/mediaamtx-Paket zu kompilieren, das auf Golang geschrieben ist. Wie auch immer, ich kann das Paket zum Erstellen der Binärdatei nicht bekommen. Ich habe wenig Erfahrung mit go.

Bisher habe ich es geschafft, die richtige Version von Git zu klonen und die richtige lic_files_chksum zu verwenden, aber ich habe Schwierigkeiten, die Binärdateien tatsächlich aus der Quelle zu generieren.

SUMMARY = "mediamtx RTSP server"
HOMEPAGE = "https://github.com/bluenviron/mediamtx"
SECTION = "multimedia"
LICENSE = "MIT"

inherit goarch pkgconfig

#GO_IMPORT = "github.com/bluenviron/mediamtx"

LIC_FILES_CHKSUM = "file://LICENSE;md5=77fd2623bd5398430be5ce60489c2e81"

SRC_URI = "git://github.com/bluenviron/mediamtx;branch=main"

S = "${WORKDIR}/git"

SRCREV = "21756a4d54152872cda48469861147ee652df922"

FILES_${PN} += "${GOBIN_FINAL}/*"


DEPENDS += "\
        go \
        python \
"

do_install_append() {
    cp ${D}${bindir}/mediamtx ${D}${bindir}/${BPN}
}

Wenn ich den do_install_append ,那么配方会成功构建,但它不会编译代码来创建二进制文件 - 这对我来说似乎很明显,因为没有 do_compile-Teil entferne. Ich kann anscheinend keine Informationen finden, die mir sagen, wie ich es kompilieren soll.

Es wäre großartig, wenn mir jemand ein Yocto-Rezept für diese Tasche geben könnte. Wenn nicht, wäre ich für Hilfe/Anleitung dankbar. Danke.

Lösung

Ich hatte das gleiche Problem und das hat bei mir funktioniert.

SUMMARY = "MediaMTX / rtsp-simple-server is a ready-to-use and zero-dependency server and proxy that allows users to publish, read and proxy live video and audio streams."
GO_IMPORT = "github.com/bluenviron/mediamtx"
HOMEPAGE = "https://${GO_IMPORT}"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=77fd2623bd5398430be5ce60489c2e81"

SRC_URI = "git://${GO_IMPORT};branch=main;protocol=https"
SRCREV = "65f617aa7c326f491c4f4f4a4d52beea3bd6abc7"

GO_INSTALL = "${GO_IMPORT}"
do_compile[network] = "1"

# build executable instead of shared object
GO_LINKSHARED = ""
GOBUILDFLAGS:remove = "-buildmode=pie"

inherit go-mod

FILES:${PN} += "/usr/local/bin"

Ich verwende die Kirkstone-Version von Yocto.

Das obige ist der detaillierte Inhalt vonKompilieren Sie das Golang-Paket in Yocto. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen