Yocto项目中每个Recipe的编译过程都会将源文件解压或搬运到tmp/work/
下的特定工作目录,并在此完成所有构建任务。具体流程可分为以下关键步骤:
一、源码处理阶段
-
源码获取(do_fetch)
Recipe通过SRC_URI
变量指定源码来源(如Git仓库、HTTP下载或本地文件)。这些文件会被下载到DL_DIR(默认路径为build/downloads/
),并生成.done
文件标记完成状态27。
示例:若源码来自Git仓库,BitBake会克隆代码到DL_DIR/git2/
目录下。 -
源码解压(do_unpack)
源码会被解压到tmp/work/<target-arch>/<recipe-name>/<version>-r<revision>/
目录下的WORKDIR中26。例如,helloworld_1.0.bb
的源码会解压到work/x86_64-linux/helloworld/1.0-r0/
路径。此目录包含:- ${S}:源码主目录(如