- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
更新:这个问题已经解决了。我正在重新编辑问题以更新到固定状态。
我正在尝试编写一个使用 dep
工具的方法,在构建它之前解决 go
相关项目的依赖关系。我正在使用“rocko”Yocto 项目分支的“poky”层。该分支提供构建 go
编译器和 dep
依赖项工具的方法。
我的初始配方从 bitbucket 存储库中获取源代码:
GO_IMPORT = "bitbucket.org/path/to/my_project"
SRC_URI = "git://${GO_IMPORT}/protocol=http;user=${GIT_USER}:${GIT_PASS};destsuffix=${PN}-${PV}/src/${GO_IMPORT}"
然后我添加这个:
inherit go
DEPENDS += "go-dep"
添加这个函数后:
do_compile_prepend() {
dep init
dep ensure
}
Yocto 提示这个错误:
run.do_compile.8543: line 118: dep: command not found
阅读下面您的一些答案后,我在 poky/meta/recipes-devtools/go/go-dep_0.3.0.bb 配方文件的末尾添加了您的答案中的建议补丁 - 非常感谢! :-)
BBCLASSEXTEND = "native nativesdk"
在我执行一些 bitbake 命令后:
$ bitbake -c cleanall go-dep-native
$ bitbake go-dep-native
Bitbake 进程正常结束,没有显示任何错误或警告。 native go-dep
工具已内置到 tmp/work/x86_64-linux/go-dep-native 目录中,并已正确安装到 tmp/sysroots-components/x86_64/go-dep-native/usr/bin。
我修改了 do_compile_prepend() 函数,如下所示:
do_compile_prepend() {
rm -f ${WORKDIR}/build/src/${GO_IMPORT}/Gopkg.toml
rm -f ${WORKDIR}/build/src/${GO_IMPORT}/Gopkg.lock
cd ${WORKDIR}/build/src/${GO_IMPORT}
dep init
dep ensure
}
我在我的食谱中修改 DEPENDS 是这样的:
DEPENDS = "go-native go-dep-native"
请注意 go-dep 已被删除(我不需要目标设备上的 dep
工具,只是为了解决 native 平台上的依赖关系)。
之后,我执行这个命令:
$ bitbake <foo>
do_compile 阶段工作正常,但在执行 do_package 阶段时出现一些错误:
ERROR: <foo>-1.0-r0 do_package: QA Issue: File '/usr/bin/dep' from <foo> was already stripped, this will prevent future debugging! [already-stripped]
ERROR: <foo>-1.0-r0 do_package: Fatal QA errors found, failing task.
ERROR: <foo>-1.0-r0 do_package: Function failed: do_package
这些错误已修复,在我的食谱末尾附加了这个:
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INHIBIT_PACKAGE_STRIP = "1"
RDEPENDS_${PN}-staticdev += "bash"
RDEPENDS_${PN}-dev += "bash"
我不知道这是否是解决我的问题的最佳方法,但至少现在它工作正常。欢迎提出任何改进此食谱的建议。先感谢您! :-)
最佳答案
DEPENDS += "go-dep"
意味着您的目标 配方可以包含 go-dep 提供的 header 或链接库,但您不能运行dep命令,如果需要运行dep命令,需要依赖go-dep-native:
DEPENDS += "go-dep-native"
但是yocto目前没有提供go-dep-native,所以你要加上:
BBCLASSEXTEND = "native"
到meta/recipes-devtools/go/go-dep_XXX.bb。
然后你可以在do_compile_prepend()
中运行dep命令
关于go - 使用 dep 工具管理 Go 依赖项的 Yocto 配方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48318030/
谁能更全面地向我解释 sstate 缓存在 yocto 中是如何工作的? This explanation还不清楚。 我不明白这种情况何时发生: NOTE: Preparing runqueue NO
我想为一台新机器(称之为A)添加一些从上游获取的层,主要是为了使用这些层提供的机器A配置文件、内核和u-boot。然而,新层有几个 bbappend 文件(还有 bb 文件),其版本与我的 yocto
我正在尝试为我的飞思卡尔 imx6 板添加一个新层。它依赖于 meta-fsl-arm 层。 层被添加到 bblayers.conf。但是当我构建机器 imx6dlwisehmi 时,linux-im
如何使用 BitBake 配方向图像添加大量文件? 我将文件添加到图像所遵循的模式如下: SRC_URI += "file://bar" do_install () { install -
我是 Yocto 世界的新手。我正在尝试学习如何使用 Yocto 创建嵌入式 Linux 发行版,到目前为止已经成功地为我的定制板构建了一个基本镜像,并且系统运行良好。我目前正在使用 Yocto 分支
我有一个基于 Rocko 分支的工作 Yocto 构建系统,它为基于 ARM 的目标板生成图像。该板上的一个芯片是一个基于 ARM 的小型微 Controller ,与主 CPU 分开。它需要加载我必
我需要 Yocto 项目的源代码包。我已经拥有整个项目的所有资源,但它们还包括开发工具。 我想有一种方法来生成将为目标图像构建的所有包的(修补的)源。因此,例如,如果目标图像包含 busybox,我想
我有一个在解析过程中进行检查的配方。我想做的不是发出警告或因错误而停止,我想让 yocto 完全忽略配方,就好像它从未存在过一样。如果其他一些配方 RDEPENDS 在它上面,它仍然可能会出错,但否则
在 poky/build/tmp/work 目录中编辑源代码是一种好习惯吗?因为如果我们不小心清理了状态,更改将被删除。 或者,我们可以编辑"file"目录中的源代码以及配方文件,但由于这里的大部分代
我正在尝试使用 core-image-base 配方为 RPi 构建一个控制台图像,但在我的配置中的某个地方,我似乎已经打开了一些增加配方数量的东西由大约 1000 人构建,其中包括许多感觉不属于控制
我最近尝试构建基于 Linux 的嵌入式系统,这与我通常可以完全控制一切的嵌入式系统相去甚远。 作为其中的一部分,我正在研究 Yocto/bitbake/OpenEmbedded 构建系统。 我正在努
我有一些自己编写的 yocto 配方,这些配方会导致 yocto 状态缓存机制出现问题(比如当依赖项发生变化时不重建配方)。 有没有办法在每个配方的基础上禁用状态缓存? 在互联网上搜索我只能找到非常古
我正在为特定硬件构建 yocto(来自 nxp 的 imx6 saber-sdb)。我想从构建过程中删除特定的( Chrome )包。这样 chromium 包就不会被下载、编译,也不会成为目标镜像的
我正在尝试添加新的 c 文件来代替从 git 下载软件包后已经存在的文件。尝试过 bbappend 但原始文件仍然存在。还修改了 src_uri += file://fileone.c 但这是也不覆盖
假设我们有配方“A”和“B”,它们每个都在目标镜像上安装一些二进制文件。但在图像的运行时, 'A' 的二进制结果取决于 'B' 的二进制结果是否存在。如果我这样做的话,我可以使两个二进制文件都存在 I
我是 Yocto 和 Embedded 的新手,想要这样的东西, $ git clone https://github.com/babelouest/orcania.git $ git clone h
我正在尝试添加新的 c 文件来代替从 git 下载软件包后已经存在的文件。尝试过 bbappend 但原始文件仍然存在。还修改了 src_uri += file://fileone.c 但这是也不覆盖
假设我们有配方“A”和“B”,它们每个都在目标镜像上安装一些二进制文件。但在图像的运行时, 'A' 的二进制结果取决于 'B' 的二进制结果是否存在。如果我这样做的话,我可以使两个二进制文件都存在 I
我是 Yocto 和 Embedded 的新手,想要这样的东西, $ git clone https://github.com/babelouest/orcania.git $ git clone h
我使用 Yocto 构建了一个文件系统,使用了 core-image-minimal 的 .bbappend。两个问题: 我如何找出哪个包占用了 rootfs 上的大量存储空间? 除了查看每个包的 $
我是一名优秀的程序员,十分优秀!