php小编草莓为您介绍在yocto中编译golang包的方法。Yocto是一个开源的嵌入式Linux构建系统,而Golang是一种强大的编程语言,将它们结合起来可以为嵌入式设备开发提供更多的灵活性和效率。编译golang包需要一些特定的步骤和配置,我们将在本文中详细介绍如何在yocto中成功完成这一过程。无论您是初学者还是有经验的开发人员,本文都将为您提供有用的指导和提示,让您轻松掌握在yocto中编译golang包的技巧。
问题内容
我正在尝试编写一个 yocto 配方来编译 https://github.com/bluenviron/mediamtx 包,该包是在 golang 上编写的。无论如何,我无法获取构建二进制文件的包。我对 go 几乎没有经验。
到目前为止,我已经成功地获得了从 git 克隆正确版本并使用正确的 lic_files_chksum 的方法,但我正在努力让它从源代码中实际生成二进制文件。
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}
}
登录后复制
如果我删除 do_install_append
,那么配方会成功构建,但它不会编译代码来创建二进制文件 - 这对我来说似乎很明显,因为没有 do_compile
部分。我似乎找不到任何信息告诉我如何编译它。
如果有人能够为我提供这个包的 yocto 食谱,那就太好了,如果没有,那么任何类型的帮助/指导都会受到赞赏。谢谢。
解决方法
我也遇到了同样的问题,这对我有用。
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"
登录后复制
我正在使用 yocto 的 kirkstone 版本。
以上就是在yocto中编译golang包的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!