You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从OpenModelica导出FMU至Python(FMPy)时加载共享库失败求助

解决Docker导出FMU在Windows FMPy中"加载共享库失败"的问题

核心问题:跨平台导出的FMU二进制不匹配

你在Docker(大概率是Linux容器)里导出的FMU是Linux平台的二进制文件(.so格式),但Windows需要的是Win64的.dll。FMPy解压后找不到对应Windows平台的DLL,就会触发这个错误。

分步解决方法

1. 切换到Windows容器或本地安装OpenModelica

  • 如果你坚持用Docker,先在Docker Desktop里切换到Windows容器模式,然后使用基于Windows的OpenModelica镜像来导出FMU,这样生成的才是Win64的.dll。
  • 最省心的方案是直接在Windows本地安装OpenModelica 1.22.1,完全避免跨平台导出的兼容性问题。

2. 验证FMU内部的二进制文件

把导出的FMU改后缀为.zip解压后,检查binaries目录:

  • 如果只有linux64文件夹和.so文件,说明是Linux平台的FMU,肯定在Windows跑不起来。
  • 必须要有win64文件夹,里面包含FMU_pendulum.dll。

3. 导出FMU时明确指定目标平台

在OMEdit导出FMU的设置里:

  • 确认选的是FMU 2.0 Co-Simulation
  • 在Export Options中把Target Platform设为win64
  • 确保勾选Generate binaries,让编译器生成对应平台的DLL文件。

4. 检查DLL的依赖项(如果DLL存在仍报错)

如果解压后有win64/FMU_pendulum.dll但还是报错,可能是缺少依赖库:

  • 用Visual Studio的开发命令提示符运行:
    dumpbin /dependents FMU_pendulum.dll
    
  • 或者用Dependency Walker工具查看缺失的依赖,通常是OpenModelica的运行时库,把这些库放到系统PATH里,或者和DLL放在同一目录即可。

内容的提问来源于stack exchange,提问作者Léo_Schmider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 23:32:41