如何创建Yocto主配方以一键清理并构建多个应用配方?
创建Yocto主配方批量构建/清理多应用
核心思路
让master.bb作为虚拟配方,通过依赖关系关联所有目标应用配方。这样执行bitbake master时会自动触发所有依赖应用的构建,清理命令也会同步处理所有关联配方。
编写master.bb配方
创建如下内容的master.bb文件:
# 声明为架构无关的虚拟配方 inherit allarch # 定义合法协议(必填项) LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" # 依赖所有需要构建的应用,替换成你的A、B、C、D配方对应的包名 DEPENDS += "A B C D" RDEPENDS:${PN} += "A B C D" # 无源码需要拉取,所以SRC_URI留空 SRC_URI = "" # 无需编译步骤,直接跳过 do_compile[noexec] = "1" do_install[noexec] = "1"
执行批量操作
- 批量构建:执行以下命令,会自动构建A、B、C、D所有应用
bitbake master - 批量清理:执行以下命令,会清理所有依赖应用的构建产物、临时文件等
bitbake -c cleanall master
关键说明
DEPENDS确保构建master时先构建所有依赖的应用;RDEPENDS:${PN}确保最终镜像中包含这些应用(如果需要将应用打包进镜像的话)。inherit allarch标记配方为架构无关,避免不必要的架构检查。do_compile[noexec] = "1"和do_install[noexec] = "1"跳过编译和安装步骤,因为这是虚拟配方,没有自身的源码需要处理。
内容的提问来源于stack exchange,提问作者Dhanya kumar
相关产品推荐
相关产品推荐

