在Yocto中编译Golang软件包

huangapple go评论110阅读模式
英文:

compile golang package in yocto

问题

我正在尝试编写一个yocto配方来编译https://github.com/bluenviron/mediamtx包,该包是用Golang编写的。无论如何,我都无法使该包生成二进制文件。我对Go几乎没有经验。

到目前为止,我已经成功让配方从git克隆正确的版本,并具有正确的LIC_FILES_CHKSUM,但我无法让它从源代码生成二进制文件。

如果我删除do_install_append,那么配方将成功构建,但它不会编译代码以创建二进制文件-这对我来说似乎是显而易见的,因为没有do_compile部分。我找不到任何告诉我如何进行编译的信息。

如果有人能为我提供这个包的yocto配方,那将非常好,如果不能,任何形式的帮助/指导也将不胜感激。谢谢。

英文:

I am trying to write a yocto recipe to compile https://github.com/bluenviron/mediamtx package, which is written on Golang. And no matter what, I can't get the package to build the binary. I have little to no experience with Go.

So far, I have managed to get the recipe to clone proper version from git and with correct LIC_FILES_CHKSUM but I am struggling to get it to actually generate a binary from the 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}
}

if I remove do_install_append then the recipe builds successfully but it doesn't compile the code to create a binary - which seems obvious to me as there is no do_compile section. I can't seem to find any information which tells me how to get it to compile.

It'd be great if someone is able to provide me a yocto recipe for this package, if not then any kind of help/direction is appreciated. Thanks.

答案1

得分: 2

我遇到了同样的问题,这个方法对我有效。

SUMMARY = "MediaMTX / rtsp-simple-server是一个即插即用且无依赖的服务器和代理,允许用户发布、读取和代理实时视频和音频流。"
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版本。

英文:

I had that same problem, this worked for me.

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"

I'm using Yocto's kirkstone release.

huangapple
  • 本文由 发表于 2023年6月9日 14:54:13
  • 转载请务必保留本文链接:https://go.coder-hub.com/76437891.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定