使用“deploytool”和 Matlab 编译器有啥区别?

Posted

技术标签:

【中文标题】使用“deploytool”和 Matlab 编译器有啥区别?【英文标题】:What's the difference between using "deploytool" and Matlab Compiler?使用“deploytool”和 Matlab 编译器有什么区别? 【发布时间】:2017-07-25 07:49:27 【问题描述】:

制作Java包的“deploytool”的作用是什么?这与 Matlab 编译器不同吗?我想在我的 Netbeans 项目中使用 Matlab。

【问题讨论】:

【参考方案1】:

好的,首先,您需要知道这里有多个产品,并且产品在不同版本之间发生了变化,因为 MathWorks 以不同的方式将不同的功能收集在一起。

在 R2014b 及以下版本中,我们有:

MATLAB 编译器:制作.exe.dll 文件 MATLAB Builder JA for Java:制作.jar 文件 用于 .NET 的 MATLAB Builder NE:制作 .NET 程序集 MATLAB Builder EX for Excel:制作.xla Excel 插件文件

在 R2015a 中,这些产品混合在一起,我们有:

MATLAB 编译器:制作 .exe.xla 文件 MATLAB 编译器 SDK:制作 .dll.jar 文件和 .NET 程序集

Builder 和 SDK 产品依赖于 MATLAB Compiler(即,为了使用 Builder/SDK 产品,您还需要有 Compiler - 当然还有 MATLAB 本身,以及您需要的任何工具箱)。

好的。现在在所有情况下,为了实际创建您想要的东西(.exe.jar 等),您需要使用命令mcc。这是 MATLAB 编译器附带的,如果您还拥有 Builder/SDK 产品,则启用其他选项(允许您构建该产品的文件类型)。

如果您习惯使用相当复杂的命令行方法,mcc 很好,并且(几乎)产品的所有功能都可以使用它启用。

但是mcc 的选项可能会让一些人感到困惑。所以你也有deploytooldeploytool 是一个图形用户界面,使您能够以更简单的点击方式指定mcc 的所有选项,然后将这些选项保存到.prj(部署项目)文件中。您可以将该项目文件作为单个参数传递给mcc(或者您可以只按deploytool 中的一个按钮),它将进行编译。

deploytool 中还有一些其他选项可用,我认为 MathWorks 尚未启用作为 mcc 的直接选项 - 例如为.exe 文件提供图标的能力,以及添加一些 cmets 到它出现在 Windows 的“属性”对话框中。但没有什么很重要的。

【讨论】:

【参考方案2】:

deploytool 是来自 MATLAB 编译器的函数。 MATLAB 编译器允许您从 MATLAB 生成独立的可执行文件。对于 Java,您还需要 MATLAB Compiler SDK,它是 MATLAB Compiler 的附加组件。详情请见Desktop and Web Deployment。

【讨论】:

它是包含在 Matlab 中还是我必须与 Matlab 分开购买? 不,它不包括在内,它是单独的。与所有代码生成/部署工具一样,它也非常昂贵。

以上是关于使用“deploytool”和 Matlab 编译器有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

使用 64 位 win 和 MATLAB 为 win 32 系统编译 matlab gui

IPPL 与 Matlab 编译器运行时 (MCR)

Matlab 编译器链接错误(64 位与 32 位)

Matlab高级教程_第二篇:Matlab2016a和VS2013混合

Matlab可执行文件,传递变量[重复]

matlab回调函数生成.exe文件好处