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

搭载Big Sur的Mac M1设备编译MATLAB版SPM12报错如何解决

M1芯片Mac Big Sur系统SPM12编译失败解决方案

报错根因

MATLAB R2020a为纯Intel架构版本,在M1芯片设备上通过Rosetta 2转译运行时,mex命令无法自动识别当前设备架构,触发编译失败。

方案一:无需更换MATLAB版本

  1. 清理历史编译缓存
    进入spm12/src目录,执行命令清理之前的错误编译产物:
    make distclean
  2. 指定x86架构执行编译
    执行命令时主动声明用x86_64架构运行,不需要修改终端默认配置:
    arch -x86_64 make && arch -x86_64 make install
  3. 可选调整:修改Makefile配置
    如果执行上一步仍报错,打开spm12/src目录下的Makefile文件,找到MacOS编译相关配置段:
    • 给所有mex编译参数添加-arch x86_64标识,示例:mex -O -largeArrayDims -arch x86_64 -c spm_vol_utils.c
    • 在CFLAGS和LDFLAGS配置行末尾添加-arch x86_64参数
      保存修改后重新执行编译命令即可。

方案二:长期兼容方案

升级MATLAB到R2020b及以上版本,该版本开始原生支持Apple Silicon架构,无需转译即可正确识别设备架构,按原有教程步骤直接编译即可。

后续权限验证

编译完成后如果弹出mex文件无法运行的提示,重新执行以下两条命令放行权限即可:
sudo xattr -r -d com.apple.quarantine ./Downloads/spm12/
sudo find ./Downloads/spm12/ -name \*.mexmaci64 -exec spctl --add {} \;

内容的提问来源于stack exchange,提问作者Maxime Carriere

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:27:02