Matlab Coder - 从 .m 文件生成 EXE

本文关键字:EXE 文件 Coder Matlab | 更新日期: 2023-09-27 18:34:49

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

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

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

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

Matlab Coder - 从 .m 文件生成 EXE

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 之间的区别在于,"基本"编码器产品允许生成功能正确的代码,但该代码没有针对实时性能进行优化或可定制以满足某些编码标准。嵌入式编码器允许您优化和自定义由 MATLAB 和 Simulink Coder 生成的代码。如果您有 RTW 许可证,那么当 MATLAB Coder 发布时,您将获得免费的 MATLAB Coder 许可证,因为 MATLAB Coder 是 Simulink Coder 的先决条件。

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

指 6(:

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