Matlab Coder - 从 .m 文件生成 EXE

Posted

技术标签:

【中文标题】Matlab Coder - 从 .m 文件生成 EXE【英文标题】:Matlab Coder - Generating EXE from .m file 【发布时间】:2013-10-10 13:03:42 【问题描述】:

我的主要目标是将 matlab(.m) 编写的代码与另一个 c# 应用程序集成。 我考虑了 2 个选项:

    使用 Matlab Builder NE 优点:用得上! 缺点:需要一个我目前还没有的许可证 ($$)。需要在最终用户 PC 上安装 MCR。 从 .m 文件生成独立的 EXE 文件 优点:不需要任何东西来运行。 缺点:新手很难使用。不支持所有功能。

到目前为止,我正在尝试对选项 2) 进行“概念证明”,但没有成功。 我什至不知道如何开始我的问题;一旦我对工具箱有了更多了解,我会尽快改进我的问题。如果问题不符合标准,请通知我。

    Matlab Coder、Real-Time Workshop(RTW) 和 RTW Embedded Coder 之间有什么关系?我确定我有两个 RTW 许可证,但我不确定我是否有“Matlab Coder” 我正在尝试使用“emlc”命令生成 EXE。这是正确的命令吗?我无法让它工作。我正确生成了 C/C++ 代码,但是没有生成 EXE(我已经配置了 MEX 设置) “emlc”生成的 C/C++ 代码可以导入 Visual Studio 以编译和构建 EXE 吗?是不是超级简单? “Emlc”属于哪个工具箱? %#codegen 指令代表什么? 假设我在一个 .m 文件中有 2 个函数(函数 A、函数 B)。还想象一下,我能够生成 EXE。 exe的入口点是什么?是functionA还是functionB?如何定义数据类型?

【问题讨论】:

如果您想从 Matlab 生成一个 exe,该 exe 将需要 MATLAB 运行时,这就是您应该研究的内容 @Matt 仅当您使用 MATLAB Compiler 而不是 MATLAB Coder 时 【参考方案1】:

MATLAB Coder 是一个相对较新的产品,它允许您从 MATLAB 生成 C 代码,而无需使用 Simulink。在此之前,您需要 Simulink 和 Real-Time Workshop(即使您没有使用 Simulink)才能使用 emlc 从 MATLAB 生成 C 代码。 MATLAB Coder 发布时,Real-Time Workshop 更名为 Simulink Coder,Real-Time Workshop Embedded Coder 更名为 Embedded Coder。 MATLAB/Simulink Coder 和 Embedded Coder 之间的区别在于,“基本”编码器产品允许生成功能正确的代码,但该代码并未针对实时性能进行优化,也未针对特定编码标准进行定制。 Embedded Coder 允许您优化和自定义 MATLAB 和 Simulink Coder 生成的代码。如果您拥有 RTW 许可证,那么您将在 MATLAB Coder 发布时获得免费许可证,因为 MATLAB Coder 是 Simulink Coder 的先决条件。

我相信emlc 属于 MATLAB Coder。 MATLAB Coder 生成的代码可以在 Visual Studio 中导入和编译。我不知道它实际上有多容易,但是有一个名为“Pack N Go”的功能应该使这个过程更容易,检查一下。还有一个 Visual Studio 目标,但不确定这是在基础 MATLAB Coder 中还是您是否还需要 Embedded Coder。

【讨论】:

【参考方案2】:

参考6):

入口点将与 MATLAB 中的相同 - 因此,在 m 文件中定义的第一个函数。 命令行参数将全部作为字符串传递给这个函数。

【讨论】:

以上是关于Matlab Coder - 从 .m 文件生成 EXE的主要内容,如果未能解决你的问题,请参考以下文章

预期标量值:MATLAB Coder

使用调用外部函数的函数加载由 MATLAB Coder 生成的 DLL

如何给matlab coder装license

MATLAB Coder:截断/连接元胞数组

MATLAB coder 支持的 csvread 函数

在 Android Studio 中添加 MATLAB CODER 生成的 C