You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何针对特定二进制文件或配方跳过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 12:53:16