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

在64位Linux构建32位二进制文件遇Tuning错误求助

问题分析与解决方案

问题根源

你当前的配置存在架构不匹配的核心错误:目标机器是ARM架构的ti-am335x(DEFAULTTUNE为cortexa8thf-neon),但你将Multilib的lib32 tune设置为x86——这是x86架构的tune,和ARM目标架构完全不兼容,导致构建系统无法找到该tune对应的特征定义,从而触发报错。

Multilib的作用是为同一目标架构提供不同字长(如32位/64位)的支持,而非跨架构构建。

修复步骤

  1. 修改local.conf中的Multilib配置,将lib32的tune替换为适合ARM 32位的选项,比如与当前DEFAULTTUNE匹配的ARM 32位tune:
MACHINE = "ti-am335x"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "armv7athf-neon"

如果armv7athf-neon不在你的可用tune列表中,可执行以下命令查看目标架构支持的ARM 32位tune:

bitbake -e | grep ^AVAILTUNES | tr ' ' '\n' | grep arm

选择输出中适配cortex-a8的32位tune即可。

  1. 清理旧构建缓存并重新初始化环境:
bitbake -c cleanall mozjpegcjpeg
source oe-init-build-env
  1. 重新执行构建验证修复:
bitbake mozjpegcjpeg

额外说明

你之前执行bitbake -e mozjpegcjpeg | grep ^AVAILTUNES得到的x86 x86-64是**构建系统(x86_64-linux)**的可用tune,而非目标ARM系统的。要查看目标系统的可用tune,直接执行bitbake -e | grep ^AVAILTUNES即可。

内容的提问来源于stack exchange,提问作者Hiệp Nguyễn Văn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:55:27