我目前正在尝试在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-make1:*** [ceval_]错误1无法导出?? _ C @ _01LFCBOECM @?4?$ AA @:找不到符号无法导出?? _ C @ _01NOFIACDB @ w?$ AA @:找不到符号C:\ JModelica.org-2.1 \ install \ Makefiles \ MakeFile:190:目标'fmume10的配方'失败了
我对编译器和调试C代码没有多少经验,我更愿意把时间花在创建模型上;因此,这导致了许多问题:
-
此错误日志中是否存在可以通过这种方式解决的模式,使Dymola库可用于其他基于Modelica的程序,例如JModelica?
-
那么任何其他可能更适合交叉兼容模型的编译器吗?
-
我是否在浪费时间尝试让Dymola模型在JModelica中运行?在JModelica中单独重新创建模型会更明智吗?缺乏前端界面使这一点变得棘手 .
1 回答
问题是netCDF-DataReader中可用的外部库需要使用JModelica发行版中提供的GCC编译器进行编译 . 尝试使用GCC重新编译库并将库放在NcDataReader2 \ Resources \ Library \ win32中(或者更好地将它们放在NcDataReader2 \ Resources \ Library \ win32 \ gcc472中)