将一个 <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环境