Matlab2022a安装MinGW64编译器把matlab函数转换为c/c++库函数

最近在项目中,想把部分matlab中的算法函数转换为Qt下调用的C++函数,花了一天时间,配置成功,现把部分过程记录下来,供参考。

环境:
操作系统:Win10
Qt版本:Qt 5.12.10 (MSVC 2017 64 bit)
Matlab版本:Matlab R2022a
编译器版本:MinGW 6.3
免费下载地址:Download MinGW-w64 – for 32 and 64 bit Windows from SourceForge.net

步骤:

  1. 将压缩包x86_64-6.3.0-release-win32-seh-rt_v5-rev2.7z解压。

  2. 解压后不需要安装,因此把解压出来的mingw64文件夹拷贝到想要存放的目录下,比如C盘根目录下,注意,路径不要有空格

  3. 设置环境变量:用户环境变量MW_MINGW64_LOC 和 系统搜索路径 Path,具体如下:

    主菜单 -> Windows系统 -> 控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 环境变量

    (a)设置用户变量
    新建变量名 MW_MINGW64_LOC 变量值 为MinGW 6.3解压后所在文件路径 (我解压在C盘mingw64文件夹,所以是 C:\mingw64)


(b) 添加系统搜索路径
双击Path 进入后添加 路径为解压后MinGW 6.3所在路径下的bin文件路径 (我解压在C盘mingw64文件夹,所以是 C:\mingw64\bin)

以上设置完毕后,重启Matlab!

  1. 在Matlab命令窗口 输入 >> mex -setup 如下

    我们可以根据需要选择目标语言库,这里我们选择mex -setup C++

  2. 同理,我们在命令窗口输入 mbuild -setup, 然后选择对应的C++选项,如下

    经过上述步骤,环境配置这部分告一段落。下面就可以在matlab中编译m函数了。

  3. 生成动态链接库

    选择上面的库编译工具

    然后按照上图的1.2.3.4步骤,就可以进行编译了。

由于个人主做算法,不做UI,因此Qt部分就请参考其它文章吧。祝好运!!!

备注
(1)编译器版本和matlab版本需要对应
()
(2)各个环境下,32bits或者64bits运算,前后要一致。

参考文献:
(1)https://blog.csdn.net/weixin_43512599/article/details/120141070
(2)https://www.jb51.net/article/273105.htm
(3)https://blog.csdn.net/m15279530607_163/article/details/129471386
(4)https://www.mathworks.com/matlabcentral/fileexchange/52848-matlab-support-for-mingw-w64-c-c-compiler
(5)https://www.mathworks.com/support/requirements/supported-compilers.html