首頁 >後端開發 >Golang >在yocto中編譯golang包

在yocto中編譯golang包

WBOY
WBOY轉載
2024-02-09 20:10:09664瀏覽

在yocto中編譯golang包

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包的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除