MATLAB 部署工具(Deployment Tool)的使用
MATLAB与C#混合编程
对于许多开发者而言,借助MATLAB提供的丰富的矩阵运算,实现需求算法,相比于纯手工实现底层算法具有较高的效率和较好的鲁棒性。但由于MATLAB需要借助自身的mcr运行时(runtime)才能在未安装有MATLAB的用户机上正常使用,这给许多开发者带来很多困扰,且通常在执行效率上也比原生代码实现的算法要低一些。如果能忍受MATLAB的上述问题,开发者则通常会把有GUI界面的MATLAB程序打包成应用程序分发给用户使用,或纯算法的MATLAB程序打包成库文件,供各类高级语言调用,实现多语言混合编程(互操作)。本文将以生成动态库为例,描述Deploy工具的使用过程和注意事项。
mcr运行时路径可以从安装目录下寻找,也可以前往官方网站搜索。
本地路径位于:
32位:X:\Program Files\MATLAB\R2018b\toolbox\compiler\deploy\win32
64位:X:\Program Files\MATLAB\R2018b\toolbox\compiler\deploy\win64
官网下载渠道:
https://www.mathworks.com/products/compiler/matlab-runtime.html
操作方法
首先,在MATLAB中完成核心算法的开发工作,经测试无误后,在命令行窗口输入:
>> deploytool
弹出MATLAB Compiler 对话框。
选择Libary Complier。
以生成.NET Framework 程序集为例,步骤如下:
1.在TYPE类型选项Tab页的列表框中,选择 .NET Assembly ;
2.点击右侧加号,添加你需要导出的函数文件;
3.选择 Runtime download from web 运行时从网页下载;
4.点击设置Setting按钮,设置额外的参数为“-C”(注意大写,至于为何设置后面会提及,检查输出路径后确认即可。
Option | Description | Comment |
---|---|---|
-c | Generate C wrapper code. | Equivalent to -T codegen |
-C | Direct mcc to not embed the deployable archive in generated binaries. | |
-d directory | Place output in specified folder. |
更详细的选项参数说明可以点击右上角帮助按钮。
5.在主窗口中,设置库文件名称等一系列属性,在命令空间和类名中,根据自己需求进行设置;
6.在主窗口中,设置库文件名称等一系列属性,在命令空间和类名中,根据自己需求进行设置;
7.确认各信息无误后,点击右上角的Package按钮进行打包,等待打包结束;
8.完成后,弹出输出的文件夹窗口,找到\MyLibary\for_testing路径下的扩展名为.ctf的文件;
9.再找到\MyLibary\for_testing路径下的MyClass源文件(即与自己定义的类名一致);
10.将上述两个文件拷贝到新建的一个空文件夹下备用;
11.打开Visual Studio集成开发环境,新建.NET Framework类