Yocto编译输出目录的元数据配置位置咨询
Yocto build/tmp/work目录结构的配置逻辑
这些build/tmp/work下的子目录,是由构建系统的全局架构变量、TUNE配置、发行版标识等自动生成的,并非由单个软件包配方直接指定存放路径,核心逻辑如下:
1. 目录命名的核心变量
目录名称的组成依赖几个关键全局变量,这些变量在构建配置或元层配置中定义:
TARGET_SYS:目标系统标识,格式通常为${TUNE_PKGARCH}-${DISTRO}-${SDK_SYS_SUFFIX},比如armv7-neon-poky-linux-gnueabiBUILD_SYS:构建主机的系统标识,比如x86_64-linuxMULTIMACH_TARGET_SYS:多架构场景下的目标系统标识,部分配方会用这个变量匹配通用架构(比如all-poky-linux对应不依赖特定架构的软件包)
2. 配方如何关联到对应目录
软件包配方通过继承的类和配置,自动适配到对应目录:
- 大部分配方会继承
base.bbclass或autotools.bbclass等基础类,这些类会自动使用TARGET_SYS等变量确定编译产物的存放路径 - 如果是架构无关的软件包(比如纯脚本、配置文件),配方中会设置
PACKAGE_ARCH = "all",这类包会存放在all-poky-linux这类通用目录下 - 针对交叉编译的包,构建系统会根据
TUNE_FEATURES(比如armv7neon)、TARGET_ARCH等参数,自动匹配到对应架构的目录
3. 核心配置文件的位置
- 全局架构和TUNE配置主要定义在
meta/conf/machine目录下的机器配置文件(比如qemuarm.conf),以及meta/conf/distro下的发行版配置文件(比如poky.conf) - 基础类的路径逻辑定义在
meta/classes目录下的.bbclass文件中,比如base.bbclass包含了编译目录的生成逻辑
内容的提问来源于stack exchange,提问作者user3693586
相关产品推荐
相关产品推荐

