跳轉到內容

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)時,似乎會發生這種情況,請參見

華夏公益教科書