MinGW -w64 编译器
您可以使用 MinGW-w64 编译器来编译 MEX 文件、MATLAB® 的 C++ 库接口以及独立的 MATLAB 引擎和 MAT 文件应用程序。有关详细信息,请参阅“MATLAB 对 MinGW-w64 C/C++ 编译器的支持”。
安装 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 文件,因为编译器会耗尽内存。