bitbake cleanall 删除目标的所有输出文件、共享状态缓存和下载的源文件
不清楚或未记录它是否也会清理所有构建时依赖项
如果您想要清除所有内容,请执行以下操作:
bitbake world -c cleanall --continue
--continue
参数在清理时会忽略任何依赖错误。即使出现错误,也尽可能继续执行。
bitbake -c cleanall core-image-minimal
只删除该命名食谱的输出。
我通常做的清理“所有内容”的方法是在名为“world”的食谱上运行cleanall:
bitbake -c cleanall world
如果由于无法解决的软件包问题而失败,例如:ERROR: Nothing PROVIDES 'sg3-utils' (but /home/blubb/meta-freescale/recipes-devtools/utp-com/utp-com_git.bb DEPENDS on or otherwise requires it).
我只是暂时将这些包添加到 ASSUME_PROVIDED 变量中,就像这样:
bitbake -c cleanall world --ignore-deps=python-nativedtc-native --ignore-deps=sg3-utils
如果没有任何东西提供这些软件包,那么它们很可能从未被构建。
$ bitbake -c cleanall <recipe-name>
清除目标的所有输出文件、共享状态(sstate)缓存以及已下载的源文件(即DL_DIR的内容)。实质上,do_cleanall任务与do_cleansstate任务相同,只是额外删除了已下载的源文件。
您可以使用BitBake运行此任务,方法如下:
$ bitbake -c cleanall recipe
通常情况下,您不会使用cleanall任务。只有在想要从头开始执行do_fetch任务时才需要使用。
其他人已经回答了bitbake不会自动清理依赖关系的问题,但是您可以创建一个任务间依赖关系(https://www.yoctoproject.org/docs/3.1/bitbake-user-manual/bitbake-user-manual.html#inter-task-dependencies),通过向配方添加命令来清理您的依赖关系:
do_task[depends] = "recipe:task"
do_clean[depends] = "${PN}-native:do_clean"
do_cleanall[depends] = "${PN}-native:do_cleanall"
do_cleansstate[depends] = "${PN}-native:do_cleansstate"
那个解决方案有点不够完美,因为本地的配方会尝试清理 ${PN}-native-native,所以你需要一个条件来避免重复应用:
do_clean[depends] += "${@'' if bb.data.inherits_class('native', d) else '${PN}-native:do_clean'}"
do_cleanall[depends] += "${@'' if bb.data.inherits_class('native', d) else '${PN}-native:do_cleanall'}"
do_cleansstate[depends] += "${@'' if bb.data.inherits_class('native', d) else '${PN}-native:do_cleansstate'}"
do_cleanstate
中不是漏了个s
吗? 应该是 do_cleansstate
吧? - SimonSimCity