撰写人:雪痕姐姐
撰写时间: 2020年6月29日
环境:Win10 64位操作系统,Matlab R2010b,VS 2010(C++) ,Qt 5.3.2
流程:编写matlab的m文件——将m文件打包成动态链接库dll
——使用C++调用dll——输出计算结果和图像
1 编写.m文件
打开matlab,选择一个工作区间(Current Folder),右击空白处,选择New File—>Function,此处我们先测试一些简单的功能(如有需要还需测试matlab界面是否正常显示,中文是否乱码等),以加法为例,方法名为myAdd.m,测试简单的加法,输入a,b,返回c,m文件代码如下:
function c=testAdd(a,b)
c=a+b;
end
在命令窗口运行一下,没有问题,就可以进行打包了。如图所示:
2 将m文件打包成动态链接库dll
matlab命令讲解:
mcc 将M文件转换成C/C++文件和相应的MEX包裹文件(需要Matlab编辑器),但在特定条件下可以自动调用mbuild或者mex
mex 将C/C++文件(入口函数为mexfunction())编译成MEX(DLL)文件(需要C/C++编辑器)
mbuild 将C/C++文件(入口函数为main())生成可独立运行的C应用程序(需要C/C++编辑器)
输入命令:
mex -setup
选择编译器:Microsoft Visual C++ 2010
mbuild -setup
选择编译器:Microsoft Visual C++ 2010
将myAdd.m文件打包,库名为libMyAdd命令:
mcc -W cpplib:libMyAdd -T link:lib myAdd.m
打包完成后会生成好几个文件,如图所示:
其中readme.txt是动态链接库的调用说明书,libMyAdd.h,libMyAdd.dll,libMyAdd.lib这三个文件是C++项目调用过程中需要用到的。新建include,dll,lib三个目录,将.h文件放在include目录下,.dll文件放在dll目录下,.lib文件
放在lib目录下。
3 C++调用动态链接库
由于要在客户机上运行,我们只需安装MCR(MATLAB Compiler Runtime)即可,故项目头文件,库文件引用路径我们设置为MCR的路径,而不是MATLAB的路径。
MATLAB 2010B中MCR的版本要求7.14。
3.1 MCR安装与环境配置
(1)安装MATLAB Compiler Runtime (MCR),版本要求7.14。
双击“MCRInstaller.exe”,安装MCR。默认安装路径为:C:\Program Files (x86)\MATLAB\MATLAB Compiler Runtime。
(2)配置环境变量
选择我的电脑——属性——高级系统设置——环境变量,如图所示:
新建系统变量,变量名:MCR,变量值:MCR安装路径\v714\extern;默认如图所示:
选择系统变量——Path:新建MCR运行目录:MCR安装目录 \v714\runtime\win32。默认为C:\Program Files (x86)\MATLAB\MATLAB Compiler Runtime\v714\runtime\win32。如图所示: