构建Yocto时如何仅指定单个layer为debug版本其余为release版本
仅对单个Yocto Layer设置Debug构建的方法
你之前的配置会全局生效,是因为直接在公共配置文件中添加了无作用域限制的全局变量,所有层的Recipe都会继承这些配置。按如下步骤修改即可仅对指定层生效:
- 首先确认你需要设置Debug的目标层名称,假设目标层名称为
meta-custom,所有该层下的Recipe都会匹配layer_meta-custom这个作用域标识符 - 打开你项目的
conf/local.conf文件(不要直接修改官方meta层的配置文件避免污染全局配置),替换你之前添加的全局配置为如下带作用域限制的配置:
# 仅对meta-custom层启用Debug构建相关配置 INHIBIT_PACKAGE_DEBUG_SPLIT:layer_meta-custom = "1" INHIBIT_PACKAGE_STRIP:layer_meta-custom = "1" DEBUG_BUILD:layer_meta-custom = "1"
- 如果你之前添加的
EXTRA_IMAGE_FEATURES_append = " dbg-pkgs"仅为了获取该层的Debug包,可以直接删除这行配置,开启Debug的层对应包的调试符号会自动随主包生成,不需要全局开启所有包的Debug镜像特性。如果确实需要全局保留该特性可以继续保留。
验证方式
构建完成后可以执行如下检查确认配置生效:
- 对目标层生成的二进制文件执行
file命令,可以看到输出中包含not stripped标识,说明未被裁剪调试符号 - 对其他层生成的二进制文件执行
file命令,可以看到输出中包含stripped标识,说明是正常Release版本
内容的提问来源于stack exchange,提问作者K K
相关产品推荐
相关产品推荐

