跳转到内容

SPM/SPM12 在 Windows 上的 MEX 编译

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

在 Windows 10 上编译 SPM12

[编辑 | 编辑源代码]

本页描述了在使用MATLAB R2018b (9.5)MSYS2 MinGW-w64 GCCWindows 10 上编译 SPM12 MEX 文件。

如果您使用其他版本的 MATLAB 和/或编译器,请确保它们兼容:支持的编译器

安装 MSYS2/MinGW-w64

[编辑 | 编辑源代码]

https://www.msys2.org/

下载并安装 MSYS2 到目录 C:\msys64。然后,在 MSYS2 中,输入

pacman -Syu
pacman -Su
pacman -S --needed base-devel mingw-w64-x86_64-toolchain

配置 MATLAB 编译环境

[编辑 | 编辑源代码]

启动 MATLAB 并输入

>> setenv('MW_MINGW64_LOC', 'C:\msys64\mingw64')
>> mex -setup
MEX configured to use 'MinGW64 Compiler (C)' for C language compilation.

如果出现警告,不用担心

 Warning: The MATLAB C and Fortran API has changed to support MATLAB ...

在 MSYS2 中,使用以下命令移动到 SPM12 源代码目录

$ cd  /c/Documents and Settings/login/Documents/MATLAB/spm12/src

然后适当设置 PATH

$ PATH=/c/Program\ Files/MATLAB/R2018b/bin/win64:${PATH}
$ export MW_MINGW64_LOC=/c/msys64/mingw64/
$ PATH=/c/msys64/mingw64/bin/:${PATH}

然后输入以下命令开始编译过程

$ make distclean
$ make && make install
$ make external-distclean
$ make external && make external-install

使用 MSYS2 针对 Octave 编译的注意事项

[编辑 | 编辑源代码]

安装 mingw-w64-octave

$ pacman -S mingw64/mingw-w64-x86_64-octave

然后使用以下命令启动 Octave

$ /mingw64/bin/octave --gui

并使用以下命令编译

$ cd('/c/Documents and Settings/<login>/Documents/MATLAB/spm12/src');
$ system('make distclean PLATFORM=octave');
$ system('make PLATFORM=octave && make install PLATFORM=octave');
$ system('make external-distclean PLATFORM=octave');
$ system('make external PLATFORM=octave && make external-install PLATFORM=octave');
华夏公益教科书