我想在MATLAB中打包一个应用程序供另一个团队使用。* 他们将拥有适当版本的MATLAB来运行此应用程序 *,但他们可能不一定拥有应用程序使用的所有工具箱的许可证。有没有一种方法可以将工具箱“捆绑”到应用程序中,这样它们就不需要昂贵的许可证来运行它?如果没有,是否可以以不同的方式创建独立/许可证独立的MATLAB应用程序?编辑:其中一些应用程序可能具有GUI和命令行界面。
7z5jn7bk1#
要生成可由MATLAB运行的代码,您需要MATLAB Coder。codegen命令将生成可在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 description和here are complete lists of functions supported。根据categorical list,大多数工具包函数似乎都得到了支持。如果所需的函数不受支持,则有必要使用编译器生成独立的库,并将您自己的MEX接口滚动到这些库,正如MrAzzaman所指出的。另一种可能性是使用loadlibrary函数直接加载编译器生成的库,尽管我从未尝试过最后一种选择。如果你不能在MATLAB中成功地与这些库接口,MATLAB编译器当然可以用来生成一个独立的可执行文件。deploytool简化了打包代码及其依赖项的过程。
codegen
loadlibrary
deploytool
xcitsw882#
MATLAB Compiler听起来正是你所需要的。不幸的是,它是一个单独的工具箱,你将不得不购买。编辑:我应该注意到,这将编译您的MATLAB代码到一个应用程序/库,* 不是 * MATLAB代码。我相信其他团队仍然可以在MATLAB中使用它,但我不认为他们能够看到代码本身。
dtcbnfnu3#
披露:我为MathWorks工作,并为以下资源做出了贡献:你可能会发现MathWorks的这个指南很有帮助:GitHub上的“MATLAB工具箱开发的最佳实践”。这是在一个许可证下,以便人们可以自由地重新分发它,并将其纳入自己组织的最佳实践。以下是您将在指南中找到的一些关键建议:
我们还包含了实现所有最佳实践的a complete example。https://github.com/mathworks/toolboxdesign
3条答案
按热度按时间7z5jn7bk1#
要生成可由MATLAB运行的代码,您需要MATLAB Coder。
codegen
命令将生成可在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 description和here are complete lists of functions supported。根据categorical list,大多数工具包函数似乎都得到了支持。
如果所需的函数不受支持,则有必要使用编译器生成独立的库,并将您自己的MEX接口滚动到这些库,正如MrAzzaman所指出的。另一种可能性是使用
loadlibrary
函数直接加载编译器生成的库,尽管我从未尝试过最后一种选择。如果你不能在MATLAB中成功地与这些库接口,MATLAB编译器当然可以用来生成一个独立的可执行文件。deploytool
简化了打包代码及其依赖项的过程。xcitsw882#
MATLAB Compiler听起来正是你所需要的。不幸的是,它是一个单独的工具箱,你将不得不购买。
编辑:我应该注意到,这将编译您的MATLAB代码到一个应用程序/库,* 不是 * MATLAB代码。我相信其他团队仍然可以在MATLAB中使用它,但我不认为他们能够看到代码本身。
dtcbnfnu3#
披露:我为MathWorks工作,并为以下资源做出了贡献:
你可能会发现MathWorks的这个指南很有帮助:GitHub上的“MATLAB工具箱开发的最佳实践”。这是在一个许可证下,以便人们可以自由地重新分发它,并将其纳入自己组织的最佳实践。
以下是您将在指南中找到的一些关键建议:
我们还包含了实现所有最佳实践的a complete example。
https://github.com/mathworks/toolboxdesign