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

时间:2018-03-09 12:10:13

标签: modelica jmodelica

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

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

CcodeCompilationError:生成的C代码编译失败。

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

  

======模型编译成功=======

但之后有很多错误。一些错误包括:

  

警告:.drectve` / DEFAULTLIB:" LIBCMT" / DEFAULTLIB:" OLDNAMES" '   无法识别的collect2.exe:错误:ld返回1退出状态   mingw32-make 1:*** [ceval_]错误1无法导出   ?? _ C @ _01LFCBOECM @?4?$ AA @:找不到符号无法导出   ?? _ C @ _01NOFIACDB @ w?$ AA @:找不到符号   C:\ JModelica.org-2.1 \ install \ Makefiles \ MakeFile:190:目标配方   ' fmume10'失败

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

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

1 个答案:

答案 0 :(得分:2)

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