go - 如何将 go-cross 添加到 Yocto SDK?或者在其他机器上为 Yocto 编译 Go?

标签 go yocto bitbake

我一直在使用 Yocto SDK 为 Yocto 编译 C 和 C++ 代码,这样每台机器都不需要 150GB+ 的 Bitbake 环境。 Yocto 版本是 2.4 (Rocko)

现在我想为 Golang 提供相同的功能,但我不知道该怎么做。

如果我在 Bitbake 机器上,我可以调用目录 tmp/work/x86_64-linux/go-cross-arm/下的二进制 arm-arch-gnueabi-go 二进制文件来编译代码。但是,如果我将这些二进制文件复制到另一台机器,它会链接到 Bitbake 机器上具有硬编码路径的库,这样就无法工作。

当我在图像上运行 populate_sdk 时,有没有办法在 SDK 中包含 arm-arch-gnueabi-go?或者是否有另一种简单的方法可以在其他机器上为目标编译 Go?

最佳答案

您可以在 local.conf 文件或图像配方中添加以下行:

TOOLCHAIN_HOST_TASK_append = " \
    packagegroup-go-cross-canadian-${MACHINE} \
"

TOOLCHAIN_TARGET_TASK_append = " \
    ${@multilib_pkg_extend(d, 'packagegroup-go-sdk-target')} \
"

关于go - 如何将 go-cross 添加到 Yocto SDK?或者在其他机器上为 Yocto 编译 Go?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57370142/

相关文章:

go - 如何在golang中使用N=和E=解析公钥?

go - 领事健康检查(所有服务检查失败)

git - 如何防止 bitbake 为特定主机寻找镜像?

go - 使用 client-go 模拟 'kubectl wait' 使 pod 准备就绪

templates - 在 Go 模板中迭代一系列整数

openssl - Yocto openssl 软件包未安装二进制文件

linux - 如何通过 yocto 在内核镜像中放置一个额外的文件

layer - 如何在 Yocto 中为特定机器启用/禁用特定 bbappend

git - 如何修复 bitbake 无法获取 git 错误?

yocto - Bitbake 食谱 - 简单的文件复制