我想在 MATLAB 中打包一个应用程序供另一个团队使用。他们将拥有适当版本的 MATLAB 来运行此应用程序,但他们可能不一定拥有该应用程序使用的所有工具箱的许可证。
有没有办法将工具箱“捆绑”到应用程序中,这样它们就不需要昂贵的许可证来运行它?
如果不是,是否可以以不同的方式创建独立/许可独立的 MATLAB 应用程序?
编辑:其中一些应用程序可能具有 GUI 以及命令行界面。
我想在 MATLAB 中打包一个应用程序供另一个团队使用。他们将拥有适当版本的 MATLAB 来运行此应用程序,但他们可能不一定拥有该应用程序使用的所有工具箱的许可证。
有没有办法将工具箱“捆绑”到应用程序中,这样它们就不需要昂贵的许可证来运行它?
如果不是,是否可以以不同的方式创建独立/许可独立的 MATLAB 应用程序?
编辑:其中一些应用程序可能具有 GUI 以及命令行界面。
要生成可由 MATLAB 运行的代码,您需要MATLAB Coder。该codegen
命令将生成可在 MATLAB 中运行的可执行文件。MathWorks 的 Loren 有一篇关于该产品的不错的博客文章。
下面是一个如何使用codegen
MATLAB 代码创建 MEX 函数的示例。
一个重要的警告是,对于 MATLAB Coder,MATLAB 的完整功能还不能用于编译。这是因为生成的二进制文件不需要 MATLAB Compiler Runtime (MCR),它本质上是一个无头 MATLAB 虚拟机。相反,MATLAB Coder 生成真正独立的 C 代码,但代码生成因此受到一定限制。 这里是功能子集的描述,这里是支持的功能的完整列表。根据分类列表,似乎支持大多数工具包功能。
如果所需的功能不受支持,则有必要使用编译器生成独立库并将您自己的 MEX 接口滚动到这些库,正如 MrAzzaman 所指出的那样。另一种可能性是使用该loadlibrary
函数直接加载编译器生成的库,尽管我从未尝试过最后一个选项。如果您无法在 MATLAB 中成功与这些库交互,当然可以使用 MATLAB 编译器生成独立的可执行文件。deploytool
简化了打包代码及其依赖项的过程。
MATLAB 编译器听起来正是您所需要的。不幸的是,它是一个单独的工具箱,您必须购买。
编辑:我应该注意,这会将您的 MATLAB 代码编译成应用程序/库,而不是MATLAB 代码。我相信,另一个团队仍然可以将它与 MATLAB 一起使用,但我认为他们无法看到代码本身。