Maison >développement back-end >Golang >Compiler le package Golang dans Yocto

Compiler le package Golang dans Yocto

WBOY
WBOYavant
2024-02-09 20:10:09676parcourir

Compiler le package Golang dans Yocto

l'éditeur php Strawberry vous présentera la méthode de compilation du package golang dans yocto. Yocto est un système de construction Linux embarqué open source et Golang est un langage de programmation puissant. Leur combinaison peut offrir plus de flexibilité et d'efficacité pour le développement de périphériques embarqués. La compilation des packages golang nécessite des étapes et une configuration spécifiques, et nous détaillerons comment réussir ce processus dans yocto dans cet article. Que vous soyez débutant ou développeur expérimenté, cet article vous fournira des conseils et astuces utiles pour maîtriser facilement les compétences de compilation de packages golang dans Yocto.

Contenu de la question

J'essaie d'écrire une recette yocto pour compiler le package https://github.com/bluenviron/mediamtx, qui est écrit sur golang. Quoi qu'il en soit, je n'arrive pas à obtenir le package pour construire le binaire. J'ai peu d'expérience avec Go.

Jusqu'à présent, j'ai réussi à lui faire cloner la version correcte de git et à utiliser le bon lic_files_chksum, mais j'ai du mal à le faire générer réellement les binaires à partir de la source.

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}
}

Si je retire la partie do_install_append ,那么配方会成功构建,但它不会编译代码来创建二进制文件 - 这对我来说似乎很明显,因为没有 do_compile. Je n'arrive pas à trouver d'informations m'indiquant comment le compiler.

Ce serait formidable si quelqu'un pouvait me fournir une recette yocto pour ce sac, sinon toute sorte d'aide/conseils serait appréciée. Merci.

Solution

J'ai eu le même problème et cela a fonctionné pour moi.

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"

J'utilise la version Kirkstone de yocto.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer