如何借助FMPy将Linux/Windows环境的FMU迁移至macOS?
问题:Linux环境OpenModelica生成的带源码FMU迁移至macOS运行方案
我希望在macOS环境下运行由Linux系统中OpenModelica生成的带源代码的FMU,想了解是否可通过FMPy命令将该FMU迁移至macOS,对应的命令参数(source、filename、mode)如何设置,同时确认该操作是否支持Intel及M芯片架构的macOS。
以下是我尝试的代码示例:
fmu_model = compile( source='model.fmu', filename='model_new.fmu'. mode='exec' ) sim_res = simulate_fmu) filename=fmu_model, validate=False, start_time=0, record_events=True )
核心结论
- 可以通过FMPy的
compile()函数将带源码的FMU(Linux OpenModelica生成)重新编译适配macOS - 完全支持Intel(x86_64)和M系列(ARM64)芯片的macOS,FMPy会自动匹配目标架构编译
参数设置说明
针对compile()函数的三个关键参数:
source:指定原始带源码的FMU文件路径,即你从Linux生成的model.fmufilename:设置编译后生成的适配macOS的FMU文件名,例如model_macos.fmumode:固定设为'exec',表示编译生成适配目标系统的可执行二进制FMU
修正后的可运行代码示例
from fmpy import compile, simulate_fmu # 编译适配macOS的FMU fmu_model = compile( source='model.fmu', filename='model_macos.fmu', mode='exec' ) # 运行编译后的macOS版FMU sim_res = simulate_fmu( filename=fmu_model, validate=False, start_time=0, record_events=True )
额外注意事项
- 确保macOS已安装基础编译工具链,可通过
xcode-select --install安装Xcode Command Line Tools - 原始FMU必须包含完整的可编译源码(OpenModelica生成的带源码FMU默认满足此要求),否则无法跨平台重新编译
内容的提问来源于stack exchange,提问作者janpeter
相关产品推荐
相关产品推荐

