【问题标题】:How to add go-cross to Yocto SDK? Or otherwise compile Go for Yocto on other machines?如何将 go-cross 添加到 Yocto SDK?或者在其他机器上编译 Go for Yocto?
【发布时间】:2019-08-06 16:46:19
【问题描述】:

我一直在使用 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?

【问题讨论】:

    标签: go yocto bitbake


    【解决方案1】:

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

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

    【讨论】:

    • 这对我不起作用。虽然它确实为 sdk 构建了编译器,但 sdk 仍然缺少 $SDKSYSROOT/usr/bin 中的包装器来设置 GOROOT 并调用 $SDKSYSROOT/lib/go/bin/go 中的编译器。此外,所有 go 源文件都不存在,因此无法编译任何内容。
    猜你喜欢
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多