第1章 写在前面的话
我本人都是用MATLAB的,但是近期有项目需要,将MATLAB写完之后做一个和C++的接口给开发部。可以完全参照我的步骤来。QQ2634331866
强烈建议使用最新的MATLAB!!!时代在进步,最新的MATLAB真的比之前的好太多!!!
配置:MATLAB2020a+VS2019+win10 64位
这里会涉及到其他人写的一些基础的东西,还包括我所遇到的问题,以及解决方案。
第2章 安装VS
安装VS的目的就是为了实现编译,我安装的是VS2019,大家一定要识别好MATLAB是否能识别你所安装的VS版本,我之前用的MATLAB2016B,只能安装SDK7.1,所以大家要认清自己MATLAB版本的对应,另外不建议安装mingw64,就安装VS。在MATLAB安装目录下\bin\win64\mexopts里可以进行查看支持的VS,如图1所示。可以看出,我的MATLAB支持VS2015、2017和2019。
图1 MATLAB2020A支持的VS
第3章 MATLAB转dll
3.1 MATLAB转换
MATLAB中写完程序后,转为dll供C++调用,注意,MATLAB只能将function函数文件进行转换。操作方式如图2、3所示。注意,图2中第5步并非是操作,而是第4步添加了想要转换的文件之后,自动生成其中包含的子函数(这里建议子函数和要生成的函数放在一个文件夹,不然缺少的文件还要自己添加)。点完“package”之后,会来到图4,表示正在运行,如果没有问题的话,会来到图5,表示文件正确转换,会直接打开文件夹。我们只需要打开“for_redistribution_files_only”文件夹,就可以得到想要的三个文件,如图6所示。这里MATLAB转DLL表示成功。
图2 相关步骤
图3 相关步骤
图4 相关步骤
图5 相关步骤
图6 相关步骤
3.2 可能遇到的问题及解决方案
这里可能遇到的第一个问题就是图4之后会出现3个叉号,提示转换失败,最直接原因在于VS没有安装好,那么我建议,在MATLAB中执行代码:
mex -setup
如能显示如下对话框,代表VS安装正确,可以进行编译,记住,一定要有这个显示。
第4章 MCR下载
现在可以做到脱离MATLAB环境即不需要电脑安装MATLAB!但是要下载MCR。直接上网址:MATLAB Runtime - MATLAB Compiler - MATLAB
进去之后根据版本下载MCR,安装更简单,一直点下一步就OK,但是一定要记得安装路径!!!!!!!安装MCR的目的就是,用它替代MATLAB,不安装的话,那你放心吧,绝对不可能实现调用的。
接下来只需要写C++的调用方式!!!
转换好了DLL,并不代表成功,一个好的工程师应当帮助写好接口文件,详情见下一篇(会包括很多问题的处理)。