Main Content

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 文件,因为编译器会耗尽内存。

相关主题