Преобразование моделей Modelica из Dymola в JModelica - устранение ошибок в файле журнала
В настоящее время я пытаюсь скомпилировать netCDF-DataReader в JModelica, но, похоже, пакет был разработан в 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-кода, и я бы предпочел тратить свое время на создание моделей; поэтому это приводит к ряду вопросов:
- Есть ли в этом журнале ошибок шаблоны, к которым можно обратиться, чтобы библиотеки Dymola могли использоваться в других программах на основе Modelica, таких как JModelica?
- Существуют ли другие компиляторы, которые могут больше подходить для кросс-совместимых моделей?
- Я трачу свое время, пытаясь заставить модели Dymola работать в JModelica? Было бы разумнее воссоздать модель отдельно в JModelica? Отсутствие интерфейсного интерфейса делает это сложно.
1 ответ
Проблема в том, что внешние библиотеки, доступные в netCDF-DataReader, должны быть скомпилированы с использованием компилятора GCC, доступного в дистрибутиве JModelica. Попробуйте перекомпилировать библиотеки с помощью GCC и поместить библиотеки в NcDataReader2\Resources\Library\win32 (или даже лучше поместить их в NcDataReader2\Resources\Library\win32\gcc472)