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。