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

Docker跨架构编译报错:exec /usr/bin/make格式错误求助

解决树莓派Arm64环境下编译NickelMenu的Docker跨平台执行错误

问题本质

exec /usr/bin/make: exec format error是因为amd64架构的二进制程序无法直接在Arm64(arm64/v8)主机上运行。设置DOCKER_DEFAULT_PLATFORM="linux/amd64"仅指定了镜像拉取架构,但Docker需要依赖QEMU的binfmt_misc支持才能模拟amd64运行环境,否则仍会执行失败。

解决方向

1. 启用QEMU跨平台模拟支持

树莓派默认未配置amd64的二进制模拟,需安装并启用相关组件:

  • 安装依赖工具:
    sudo apt update && sudo apt install -y qemu-user-static
    
  • 自动配置binfmt_misc(推荐,无需手动调整):
    docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    
    该命令会自动注册所有支持的架构模拟规则,包括amd64。

2. 重新执行编译命令

无需全局设置DOCKER_DEFAULT_PLATFORM,直接在命令中指定平台并利用模拟环境:

docker run --platform linux/amd64 --volume="$PWD:$PWD" --user="$(id --user):$(id --group)" --workdir="$PWD" --env=HOME --entrypoint=make --rm -it ghcr.io/pgaskin/nickeltc:1.0 all koboroot

3. 替代方案:使用Arm64原生编译镜像

检查NickelMenu的编译镜像是否提供Arm64版本:

  • 查看镜像支持的架构:
    docker buildx imagetools inspect ghcr.io/pgaskin/nickeltc:1.0
    
  • 如果输出包含linux/arm64/v8,则去掉--platform linux/amd64参数,直接使用原生Arm64镜像编译,性能比模拟环境更优。

内容的提问来源于stack exchange,提问作者Sverre Knutsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:05:01