SPM/在 64 位 Mac OS(Intel)上安装
SPM 维基教科书已移至 https://www.fil.ion.ucl.ac.uk/spm/docs/ |
如果您在 *Finder* 中使用拖放安装更新,它实际上会执行文件夹复制而不是文件夹合并,以便更新的文件会被覆盖,但未更改的旧文件会被删除(参见 此主题)。使用下面描述的命令行选项将克服这个问题。
具有 64 位 MATLAB 的 Mac Intel 是受支持的 SPM12 平台。预编译的 MEX 文件 (*.mexmaci64) 包含在 SPM 发行版中。
在您的主目录中下载 spm12.zip 及其更新 spm12_updates_rxxxx.zip,然后在终端中键入以下内容
cd /Users/login unzip spm12.zip unzip -o spm12_updates_rxxxx.zip -d spm12
启动 MATLAB 并将 SPM 添加到您的路径中,可以使用 *文件 > 设置路径 > 添加文件夹...* 或键入
addpath /Users/login/spm12 savepath
在 MATLAB 的工作区中。
If you are using macOS Catalina, Big Sur, Monterey or Ventura, try this first: fix for MEX files on recent macOS as you shouldn't need to recompile the MEX files.
如果您想编译 SPM MEX 文件,您需要安装 Apple 的开发环境 Xcode。
您还需要在系统路径中包含 *mex* 可执行文件。为此,在终端中键入以下内容
export PATH=/Applications/MATLAB_R2017a.app/bin:$PATH
使用 MATLAB 安装的适当路径
然后,在终端中,从 SPM12 安装的 *src* 文件夹中,键入
cd /Users/login/spm12/src make distclean make && make install make external-distclean make external && make external-install
如果您收到诸如 *Bad : modifier in $ (/) * 之类的错误,这是因为这些说明是针对 *bash* 终端提供的,而您使用的是 *tcsh* 终端。等效的命令是
setenv PATH /Applications/MATLAB_R2017a.app/bin:${PATH}
如果您在编译时收到诸如 *xcrun: error: SDK "macosx10.14.1" cannot be located* 之类的错误,请执行以下操作
sudo xcode-select --switch /Applications/Xcode.app/
具有 64 位 MATLAB 的 Mac Intel(从 R2009b 开始提供)是受支持的 SPM8 平台。预编译的 MEX 文件 (*.mexmaci64) 包含在 SPM 发行版中。
在您的主目录中下载 spm8.zip 及其更新 spm8_updates_rxxxx.zip,然后在终端中键入以下内容
cd /Users/login unzip spm8.zip unzip -o spm8_updates_rxxxx.zip -d spm8
启动 MATLAB 并将 SPM 添加到您的路径中,可以使用 *文件 > 设置路径 > 添加文件夹...* 或键入
addpath /Users/login/spm8
在 MATLAB 的工作区中。
如果您想编译 SPM MEX 文件,您需要安装 Apple 的开发环境 Xcode。它应该在您的 Mac OS X 安装 DVD 上可用。
您还需要在系统路径中包含 *mex* 可执行文件。为此,在终端中键入以下内容
export PATH=/Applications/MATLAB_R2009a.app/bin:$PATH
使用 MATLAB 安装的适当路径
然后,在终端中,从 SPM8 安装的 *src* 文件夹中,键入
cd /Users/login/spm8/src export MACI64=1 make distclean make && make install make toolbox-distclean make toolbox && make toolbox-install make external-distclean make external && make external-install
如果您收到诸如 *Bad : modifier in $ (/) * 之类的错误,这是因为这些说明是针对 *bash* 终端提供的,而您使用的是 *tcsh* 终端。等效的命令是
setenv PATH /Applications/MATLAB_R2009a.app/bin:${PATH} setenv MACI64 1
最新更新中提供了用于具有 64 位 MATLAB 的 Mac Intel 的预编译 MEX 文件 (*.mexmaci64)。
在您的主目录中下载 spm5.zip,然后在终端中键入以下内容
cd /Users/login unzip spm5.zip
启动 MATLAB 并将 SPM 添加到您的路径中,可以使用 *文件 > 设置路径 > 添加文件夹...* 或键入
addpath /Users/login/spm5
在 MATLAB 的工作区中。
如果您想自己编译 SPM5 MEX 文件,您需要安装 Xcode 并将 *mex* 放在系统路径中(有关详细信息,请参见 SPM8)。
然后,在终端中,从 SPM5 安装的 *src* 文件夹中,键入
cd /Users/login/spm5/src export MACI64=1 make distclean make && make install
目前没有计划为 Mac Intel 提供 SPM2 64 位 MEX 文件。
如果您在 macOS 上遇到 MEX 文件问题(“*“*.mexmaci64”无法打开,因为无法验证开发者。macOS 无法验证此应用程序是否没有恶意软件*”或“*代码签名对于使用库验证无效:系统策略禁止加载库*”),打开终端,*cd* 到 SPM 目录并键入
find . -name "*.mexmaci64" -exec xattr -d com.apple.quarantine {} \;
如果它不起作用,请尝试此等效的替代方案,将 SPM_PATH 替换为您的 SPM 安装路径
sudo xattr -r -d com.apple.quarantine SPM_PATH sudo find SPM_PATH -name "*.mexmaci64" -exec spctl --add {} \;
如果您在 Yosemite 上遇到 MATLAB 问题,请查看以下错误报告以获取补丁
http://www.mathworks.com/support/bugreports/1098655
如果您收到诸如
mex -O -c spm_vol_utils.c -DSPM_UNSIGNED_CHAR mex: unrecognized option `-O' mex: unrecognized option `-c' This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011) restricted \write18 enabled. entering extended mode (./spm_vol_utils.c This is MeX Version 1.05 18 XII 1993 (B. Jackowski & M. Ry\'cko) ! You can't use `macro parameter character #' in vertical mode.
之类的错误消息,这是由于 MATLAB *mex* 与具有相同名称的 LaTeX 命令之间存在冲突。编辑 *src/Makefile.var*,并在引用 MEXBIN 时提及完整路径
MEXBIN = /Applications/MATLAB_R2012a.app/bin/mex
或相应地更改 PATH。