将 Modelica 模型从 Dymola 转换为 JModelica - 解决日志文件中的错误

Converting Modelica models from Dymola to JModelica - Addressing Errors in Log File

我目前正在尝试在 JModelica 中编译 netCDF-DataReader,但该包似乎是在 Dymola 中开发的。该过程在编译阶段失败:

netCD = compile_fmu('NcDataReader2.Examples.Simple',r'H:\Modelica\Modelica Libraries\NcDataReader2',compiler_log_level= 'w,i:log.txt')

CcodeCompilationError: Compilation of generated C code failed.

创建的日志文件包含 326 行。中途它说

====== Model compiled successfully =======

但是后面有很多错误。部分错误包括:

Warning: .drectve `/DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized collect2.exe: error: ld returned 1 exit status mingw32-make1: *** [ceval_] Error 1 Cannot export ??_C@_01LFCBOECM@?4?$AA@: symbol not found Cannot export ??_C@_01NOFIACDB@w?$AA@: symbol not found C:\JModelica.org-2.1\install\Makefiles\MakeFile:190: recipe for target 'fmume10' failed

我在编译器和调试 C 代码方面没有太多经验,我更愿意把时间花在创建模型上;因此这导致了一些问题:

  1. 此错误日志中是否存在可以通过某种方式解决的模式,使 Dymola 库可用于其他基于 Modelica 的程序,例如 JModelica?
  2. 还有其他编译器可能更适合交叉兼容模型吗?
  3. 我在 JModelica 中尝试制作 Dymola 模型 运行 是在浪费时间吗?在 JModelica 中单独重新创建模型会更明智吗?缺少前端界面使这变得棘手。

问题是 netCDF-DataReader 中可用的外部库需要使用 JModelica 发行版中可用的 GCC 编译器进行编译。尝试使用 GCC 重新编译库并将库放入 NcDataReader2\Resources\Library\win32(或者最好将它们放入 NcDataReader2\Resources\Library\win32\gcc472)