如何在 Windows 上编译 FMU 以在 Mac 中使用?

Tao*_*o.Y 1 windows macos simulink modelica fmi

我在 Windows 上生成了一个 FMU,并在 Mac 上使用 Matlab Simulink 导入了 FMU,并得到以下错误。我搜索了这个问题并从这里的答案中得到了一些线索 https://tomlankhorst.nl/quick-fix-matlab-fmu-import-error/,似乎 FMU 在 Windows 和 Mac 上生成时会以不同的形式存储.

问题是:是否可以在 Windows 上生成仍可在 Mac 上运行的 FMU。

在此处输入图片说明

sjo*_*.se 7

为了针对 MacOS 进行编译,您需要 MacOS 平台的 C 头文件。这些仅在仅在 MacOS 上运行的 XCode 中可用,并且头文件本身不允许重新分发。

因此,为 MacOS 交叉编译非常困难。您可以在 Mac 上安装 XCode,将所需的头文件移动到您的系统并在您的 Windows 机器上编译 Darwin 工具链(我相信),但是更新较新的 MacOS 版本非常容易出错且令人讨厌。

最简单的方法是运行 MacOS 并交叉编译 Windows+Linux 二进制文件,因为这些平台不太封闭。

或者像@matth 评论的那样,生成源代码 FMU 并在您需要的任何平台上使用本机工具链对其进行编译。

  • 使用 fmpy https://github.com/CATIA-Systems/FMPy(适用于 MacOS)可以非常轻松地交叉编译源代码 FMU,例如使用 fmpy-gui 中的 Tools --> CompilePlatformBinary (2认同)