如何将m文件复制到MATLAB编译应用程序中的特定文件夹



我使用MATLAB R2015a应用程序编译器。在选择了我的主m文件后,MATLAB找到了一些应用程序运行所需的文件,但是在编译和运行我的应用程序后,编译后的应用程序无法从安装的工具箱(第三方工具箱)中找到一些特定的m文件。

现在我想复制所有工具箱文件到目标文件夹C:UsersMy_AccountAppDataLocalTempMy_AccountmcrCache8.5Program_70DDMDDM是我的工具箱文件夹,MATLAB基于上述嵌套文件自动创建它。我想在这个文件夹中添加其他文件。我该怎么做呢?这是解决这个问题的好办法吗?

你这样做是行不通的。

当您使用MATLAB Compiler编译应用程序时,它会找到主函数所依赖的所有代码,对其进行加密,并将其打包成可执行文件,稍后将对MATLAB Compiler Runtime (MCR)执行。

MCR只能执行以这种方式加密和打包的代码-不可能让它执行常规未加密的MATLAB文件。因此,将内容转储到MCR用于解包代码文件的临时文件夹中不会实现任何目标。

相反,试着找出为什么,在依赖分析期间,MATLAB编译器没有找到主函数所依赖的所有文件。

可能发生这种情况的原因有很多——依赖性分析并不完美。例如,如果代码调用eval('myfunction'),依赖性分析将找不到myfunction。我最近回答了另一个问题,其中另一个原因是问题。

在这些情况下,你可以显式地告诉MATLAB编译器有一个依赖于myfunction,使用%#function pragma。在包含对myfunction的隐藏调用的文件中,在文件的顶部(实际上是任何地方,但通常将其放在顶部)放置

%#function myfunction

MATLAB编译器将强制它成为一个依赖项,并将其包含在包中。

或者,当使用mcc或在deploytool应用程序中设置打包时,您可以自己手动添加myfunction到包中(尽管这样不会找到myfunction依赖的东西)。

相关内容

  • 没有找到相关文章

最新更新