matlab与c/c++混合编程之 mcc生成文件分析及c/c++调用流程

本文详细介绍了如何将MATLAB代码通过mcc编译为C/C++可调用的库,并分析了生成的文件作用,如mccExcludedFiles.log、.exports、readme.txt等。调用流程包括初始化MCR、调用mlf或mlx前缀函数以及资源释放。同时,讨论了mclInitializeApplication和mclTerminateApplication的用途和参数选项。
摘要由CSDN通过智能技术生成

将一个 <anothername>.m的matlab文件通过 mcc -W lib:<name> <anothername>.m 编译后生成如下文件:


mccExcludedFiles.log

<name>.exports

readme.txt

<name>.c

<name>.h

<name>.obj

<name>.dll


其中,

mccExcludedFiles.log存放着一个函数列表,提示.M文件中用到了那些工具箱函数却没有包含在CTF文件中,这可能导致运行时错误。

<name>.exports中存放导出函数列表

readme.txt 则提示应用程序部署的注意事项,即你需要提供哪些文件以保证程序可以在未安装matlab的机器上正确执行

.c/.h则是由.m文件生成的对应的c文件,obj是.c生成dll文件时产生的目标文件


查看readme.txt可以知道,发布应用程序时你应该提供的文件为 .h文件 .dll文件和 mcrinstaller.exe,mcrinstaller的存放路径通常为:

<matlabroot>*\toolbox\compiler\deploy\win32\MCRInstaller.exe


接下来看看matlab生成了那些函数

在我的测试文件nmf.m编译生成的.exports文件中有如下的导出函数列表

nmfInitialize
nmfInitializeWithHandlers
nmfTerminate
nmfPrintStackTrace
nmfGetMcrID
mlxNMF
mlfNMF

其中,

nmfGetMcrID用于获取MCR版本号,为了使应用程序正确执行,运行程序的目标机器应该有相同版本的MCR环境

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值