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

ARM64树莓派执行make命令报错无法打开ld-linux-x86-64.so.2

报错根因

该报错触发逻辑为:ARM64架构的树莓派系统通过binfmt_misc机制尝试执行x86_64架构的二进制程序时,找不到x86_64程序必需的核心动态链接器/lib64/ld-linux-x86-64.so.2。绝大多数场景是Makefile调用了代码仓库内置的x86_64预编译构建组件,或是构建流程中自动拉取了amd64架构的依赖包,和当前树莓派的CPU架构不匹配。

可落地解决方法
  • 先定位触发报错的具体程序,执行带调试输出的make命令追踪执行流:
    make -d 2>&1 | grep -E 'exec|x86_64|binfmt'
    
    从输出里定位到具体是哪条命令、哪个二进制文件触发了报错,确认该文件的架构:
    file 你找到的报错二进制文件路径
    
    如果输出包含x86-64字段,即可确认是架构不匹配问题。
  • 若该程序没有提供ARM64版本,必须跨架构运行,直接安装x86_64转译环境和缺失的依赖库:
    1. 启用Debian/Ubuntu系统的多架构支持:
      sudo dpkg --add-architecture amd64
      sudo apt update
      
    2. 安装x86_64版本的核心C库(包含报错缺失的动态链接器)和qemu用户态转译组件:
      sudo apt install libc6:amd64 qemu-user-binfmt
      
    3. 安装完成后重新执行make命令即可正常运行。
  • 优先选择原生ARM64构建链路,从根源避免跨架构问题:
    检查Makefile中写死的预编译工具下载地址、仓库内自带的构建二进制,将所有标注为x86_64/amd64的资源替换为aarch64/arm64版本;通用构建工具(gcc、cmake、nodejs、protoc等)直接通过apt源安装ARM64原生版本,替换仓库内的x86预编译文件,构建稳定性和速度都会远高于跨架构转译。
  • 若之前手动安装过box64等第三方转译层,执行update-binfmts --display检查x86_64架构对应的binfmt注册规则是否冲突,删除错误注册的规则后重新配置转译程序即可。

内容的提问来源于stack exchange,提问作者Yacine Manai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:48:36