如何在 windows 上编译要在 Mac 中使用的 FMU?

how to compile a FMU on windows to be used in Mac?

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

问题是:是否可以在 windows 上生成一个在 Mac 上仍然有效的 FMU。

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

因此,很难 cross-compile MacOS。您可以在您的 Mac 上安装 XCode,将所需的 headers 移动到您的系统并在您的 Windows 机器上编译 Darwin 工具链(我相信),但它非常 error-prone 更新 MacOS 版本很烦人。

最简单的方法是 运行 MacOS 和 cross-compile Windows+Linux 二进制文件,因为这些平台不太封闭.

或者像@matth 评论的那样,生成一个 source-code FMU 并在您需要的任何平台上使用本机工具链编译它。