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的主要内容,如果未能解决你的问题,请参考以下文章