MinGW -w64 编译器
您可以使用 MinGW-w64 编译器来编译 MEX 函数、MATLAB® 的 C++ 库接口以及独立的 C/C++ 或 Fortran MATLAB 引擎和 MAT 文件应用程序。有关详细信息,请参阅 MATLAB 对 MinGW-w64 C/C++/Fortran 编译器的支持。
安装 MinGW-w64 编译器
要安装该编译器,请使用附加功能资源管理器。
在 MATLAB 的主页选项卡的环境部分中,点击附加功能。
搜索 MinGW。
有关详细信息,请参阅 获取和管理附加功能。
编译 yprime.c 示例
您可以通过编译 yprime.c 示例来测试 MinGW® 编译器。将源文件复制到可写文件夹。
copyfile(fullfile(matlabroot,"extern","examples","mex","yprime.c"),".","f")
如果您在系统中仅安装了 MinGW 编译器,则 mex 命令会自动选择 MinGW。继续下一步。但如果您有多个 C 或 C++ 编译器,请使用 mex -setup 选择 MinGW。
mex -setup
编译 MEX 函数。
mex yprime.c
MATLAB 将显示“编译工具”消息,其中显示了用于编译 MEX 函数的编译器。
运行函数。
yprime(1,1:4)
有关详细信息,请参阅使用 MinGW -w64 编译 C/C++ MEX 文件的限制和疑难解答。
MinGW 安装文件夹名称不能包含空格
不要将 MinGW 安装在路径名中包含空格的位置。例如,不要使用:
C:\Program Files\mingw-64
应改用:
C:\mingw-64
更新 MEX 文件以使用 MinGW 编译器
如果您有使用 MATLAB 支持的其他编译器编译的 MEX 源文件,您可能需要修改代码,才能使用 MinGW 编译器进行编译。例如:
Microsoft® Visual Studio® 所生成的库 (
.lib) 文件与 MinGW 不兼容。当使用 C++ MEX 文件中的
mexErrMsgIdAndTxt函数抛出异常时将无法进行对象清理,从而导致内存泄漏。使用 MinGW 编译的 C++ MEX 文件中出现的未捕获异常会导致 MATLAB 崩溃。
不能编译其变量包含大量数据的 MEX 文件,因为编译器会耗尽内存。