1

我目前正在尝试在 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" ' unrecognized collect2.exe: error: ld returned 1 exit status mingw32-make 1 : *** [ceval_] Error 1 Cannot export ??_C@_01LFCBOECM @?4?$AA@: 找不到符号无法导出 ??_C@_01NOFIACDB@w?$AA@: 找不到符号 C:\JModelica.org-2.1\install\Makefiles\MakeFile:190: 目标'fmume10 的配方' 失败的

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

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

1 回答 1

2

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

于 2018-03-10T17:40:56.890 回答