跳转到内容

SPM/在 64 位 Mac OS(Intel)上安装

来自维基教科书,开放书籍,开放世界
< SPM

如果您在 *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 Catalina、Big Sur、Monterey、Ventura

[编辑 | 编辑源代码]

如果您在 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 {} \;

Mac OS X 10.10 Yosemite 版本上的 Java 异常和意外退出

[编辑 | 编辑源代码]

如果您在 Yosemite 上遇到 MATLAB 问题,请查看以下错误报告以获取补丁

http://www.mathworks.com/support/bugreports/1098655

"这是 pdfTeX,版本..." 错误

[编辑 | 编辑源代码]

如果您收到诸如

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。

使用图形输入时的速度变慢

[编辑 | 编辑源代码]

当安装了 macOS 的窗口管理器(MagnetTiles)时,似乎会发生这种情况,请参见

华夏公益教科书