如何打包使用工具箱的MATLAB应用程序?

bttbmeg0  于 2023-06-06  发布在  Matlab
关注(0)|答案(3)|浏览(474)

我想在MATLAB中打包一个应用程序供另一个团队使用。* 他们将拥有适当版本的MATLAB来运行此应用程序 *,但他们可能不一定拥有应用程序使用的所有工具箱的许可证。
有没有一种方法可以将工具箱“捆绑”到应用程序中,这样它们就不需要昂贵的许可证来运行它?
如果没有,是否可以以不同的方式创建独立/许可证独立的MATLAB应用程序?
编辑:其中一些应用程序可能具有GUI和命令行界面。

7z5jn7bk

7z5jn7bk1#

要生成可由MATLAB运行的代码,您需要MATLAB Codercodegen命令将生成可在MATLAB中运行的可执行文件。MathWorks的Loren在产品上有一个nice blog post
Here is an example of how to use codegen从MATLAB代码创建MEX函数。
一个很大的警告是,使用MATLAB Coder,MATLAB的完整功能还不能用于编译。这是因为生成的二进制文件不需要MATLAB编译器运行时(MCR),它本质上是一个无头的MATLAB虚拟机。相反,MATLAB Coder生成真正独立的C代码,但代码生成因此受到一定限制。功能子集的Here is a descriptionhere are complete lists of functions supported。根据categorical list,大多数工具包函数似乎都得到了支持。
如果所需的函数不受支持,则有必要使用编译器生成独立的库,并将您自己的MEX接口滚动到这些库,正如MrAzzaman所指出的。另一种可能性是使用loadlibrary函数直接加载编译器生成的库,尽管我从未尝试过最后一种选择。如果你不能在MATLAB中成功地与这些库接口,MATLAB编译器当然可以用来生成一个独立的可执行文件。deploytool简化了打包代码及其依赖项的过程。

xcitsw88

xcitsw882#

MATLAB Compiler听起来正是你所需要的。不幸的是,它是一个单独的工具箱,你将不得不购买。
编辑:我应该注意到,这将编译您的MATLAB代码到一个应用程序/库,* 不是 * MATLAB代码。我相信其他团队仍然可以在MATLAB中使用它,但我不认为他们能够看到代码本身。

dtcbnfnu

dtcbnfnu3#

披露:我为MathWorks工作,并为以下资源做出了贡献:
你可能会发现MathWorks的这个指南很有帮助:GitHub上的“MATLAB工具箱开发的最佳实践”。这是在一个许可证下,以便人们可以自由地重新分发它,并将其纳入自己组织的最佳实践。
以下是您将在指南中找到的一些关键建议:

  • 要交付给最终用户的所有内容都放在一个名为“工具箱”的文件夹中。
  • 帮助创作团队协作的所有内容,如README.md和构建实用程序都位于源代码存储库的根目录中。
  • 通过工具箱文件夹中的“示例”文件夹中的示例进行文档
  • 打包并发布您的工具箱,以便与其他人共享,这样您就可以了解用户的版本。使用语义版本控制。
  • 考虑使用参数验证、命名空间、MATLAB应用程序和实时任务来提高代码质量和生产力。
  • 通过单元测试、MATLAB项目和新的构建工具使您的工具箱更加强大。

我们还包含了实现所有最佳实践的a complete example
https://github.com/mathworks/toolboxdesign

相关问题