如何针对特定二进制文件或配方跳过split_and_strip_files函数?
解决方案:仅跳过特定二进制文件的剥离处理
在Yocto/OpenEmbedded环境中,要避免单个二进制文件被split_and_strip_files函数处理,无需全局禁用剥离,可通过以下针对性方法实现:
方法1:指定单个文件跳过剥离
在你的配方中添加NO_STRIP变量,明确标记需要保留原始状态的二进制文件:
SUMMARY = "Software" LICENSE = "CLOSED" SRC_URI = "<binary url>" SRC_URI[md5sum] = "<binary md5>" RDEPENDS_${PN} += "\ libedit \ " # 新增:指定该二进制文件不执行剥离 NO_STRIP += "${bindir}/<binary file>" do_install() { install -d ${D}${bindir} install -m 0755 ${WORKDIR}/<binary file> ${D}${bindir} }
原理说明
NO_STRIP是Yocto提供的变量,用于定义不需要进行符号表剥离的文件路径列表。package阶段的split_and_strip_files函数会自动跳过该列表中的文件,仅处理其他符合条件的文件,既保留目标文件的原始状态,又不会导致镜像体积过度增大。
方法2:针对配方局部禁用剥离(可选)
如果你的配方中所有文件都不需要剥离(仅针对当前配方),可在配方内设置局部变量而非全局变量:
# 仅当前配方禁用剥离,不影响其他组件 INHIBIT_PACKAGE_STRIP = "1"
此方法会让当前配方的所有文件都保留符号表,仅推荐当配方内所有文件都需要避免剥离时使用。
内容的提问来源于stack exchange,提问作者3R3
相关产品推荐
相关产品推荐

