как я могу исправить ошибку компиляции Jmodelica?

Я пытаюсь скомпилировать модель Modelica (построенную в Dymola) с помощью Jmodelica, но получаю следующую ошибку:

введите описание изображения здесь

В нем говорится, что модель успешно скомпилирована, но после этого возникает ошибка. Я заглянул в модель, если я удалю компонент модели CombiTable1D из стандартной библиотеки Modelica, то ошибка будет исправлена. Кажется, что-то не так с этим компонентом. Однако в моей модели этот компонент необходим.

Как решить эту проблему?

_1_ был добавлен в 2017 году, но JModelica использует версию MSL C-sources 2016 года: https://github.com/JModelica/JModelica/blob/8982e1f4e7ca33b01b398f389b73d2398761ee9c/ThirdParty/MSL/Modelica/Resources/Resource/Codelica/Resources/Codelica/


person Tao.Y    schedule 22.02.2021    source источник
comment
Вы имеете в виду использование компилятора Visual Studio в Jmodelica? но как я могу это установить, я могу скомпилировать с помощью Visual Studio в Dymola.   -  person matth    schedule 22.02.2021
comment
Большое спасибо, теперь компиляция работает с Modelica 3.2.2.   -  person Tao.Y    schedule 22.02.2021


Ответы (1)


Вероятно, вам понадобится более ранняя версия стандартной библиотеки Modelica (3.2.2 включена в JModelica) или другой инструмент Modelica, поскольку JModelica больше не поддерживается.

Можете ли вы попробовать скомпилировать Visual Studio вместо gcc? Думаю, в таблицах MSL используется внешний код.

person sjoelund.se    schedule 22.02.2021
comment
Аргументы компилятора: Генерирование кода ...
====== Модель успешно скомпилирована ======= OU44_ZoneR2C2_funcs.o: OU44_ZoneR2C2_funcs.c :(. Text + 0x24): неопределенная ссылка на 'ModelicaStandardTables_CombiTable1D_minimum' бр /> OU44_ZoneR2C2_funcs.o:. OU44_ZoneR2C2_funcs.c :( текст + 0xbc): ​​неопределенная ссылка на 'ModelicaStandardTables_CombiTable1D_maximumAbscissa' OU44_ZoneR2C2_funcs.o: OU44_ZoneR2C2_funcs.c :( текст + 0x1e7.): неопределенная ссылка на 'ModelicaStandardTables_CombiTable1D_init2'
collect2 .exe: ошибка: ld вернул 1 статус выхода
mingw32-make 1 : *** [fmume20_] Ошибка 1
mingw32-make: *** [fmume20] Ошибка 2
C: /Users/taoy/AppData/Roaming/JModelica.org-2.14/MinGW/bin/ mingw32-make -f C: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install \ Makefiles \ MakeFile PLATFORM_FLAG = -m64 RUNTIMELIBRARY_LIB_DIR = C: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ установить / lib / RuntimeLibrary64 MINPACK_LIB_DIR = C: \ User s \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / ThirdParty / Minpack / lib64 SUNDIALS_LIB_DIR = C: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install \ ThirdParty \ Sundials / lib64 WINPTHREADS_LIB_DIR = : \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / ThirdParty / winpthreads / lib / winpthreads64 fmume20_
mingw32-make 1: вход в каталог
'C: / Users / taoy / AppData / Local / Temp / 1 / jmc7241264750773945049out' gcc -m64 -std = c89 -pedantic -msse2 -mfpmath = sse -O1 -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / include / RuntimeLibrary -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install /ThirdParty/FMI/2.0 -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install \ ThirdParty \ Sundials / include -c -o OU44_ZoneR2C2_funcs.o sources / OU44_ZoneR2C2_funcs.c gcc -m89 -std -pedantic -msse2 -mfpmath = sse -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / include / RuntimeLibrary -IC: \ Users \ taoy \ AppData \ R oaming \ JModelica.org-2.14 \ install / ThirdParty / FMI / 2.0 -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install \ ThirdParty \ Sundials / include -c -o OU44_ZoneR2C2_init_independent.o sources / OU44_ZoneR2C2 .c gcc -m64 -std = c89 -pedantic -msse2 -mfpmath = sse -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / include / RuntimeLibrary -IC: \ Users \ taoy \ AppData \ Роуминг \ JModelica.org-2.14 \ install / ThirdParty / FMI / 2.0 -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2. 14 \ install \ ThirdParty \ Sundials / include -c -o OU44_ZoneR2C2_init_dependent.o sources / OU44_ZoneR2C2_init_dependent.c gcc -m64 -std = c89 -pedantic -msse2 -mfpmath = sse -IC: \ Users \ taoy \ AppData \ Roaming. org-2.14 \ install / include / RuntimeLibrary -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / ThirdParty / FMI / 2.0 -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org- 2.14 \ install \ ThirdParty \ Sundials / include -c -o OU44_ZoneR2C2_base.o sources / OU44_ZoneR2C2_base.c gcc -m64 -std = c89 -pedantic -msse2 -mfpmath = sse -IC: \ Users \ taoy \ AppData \ Roaming \ JModelic. org-2.14 \ install / include / RuntimeLibrary -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / ThirdParty / FMI / 2.0 -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org- 2.14 \ install \ ThirdParty \ Sundials / include -c -o OU44_ZoneR2C2_equ.o sources / OU44_ZoneR2C2_equ.c gcc -m64 -std = c89 -pedantic -msse2 -mfpmath = sse -IC: \ Users \ taoy \ AppData \ Roaming \ JModelic. org-2.14 \ install / include / RuntimeLibrary -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / ThirdParty / FMI / 2.0 -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install \ ThirdParty \ Sundials / include -c -o OU44_ZoneR2C2_equ_init.o sources / OU44_ZoneR2C2_equ_init.c -mgcc -m64 = c89 -pedantic -msse2 -mfpmath = sse -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / include / RuntimeLibrary -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / ThirdParty / FMI / 2.0 -IC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install \ ThirdParty \ Sundials / include -c -o OU44_ZoneR2C2.o sources / OU44_ZoneR2C2.c
mkdir двоичные файлы \ win64 C: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ MinGW \ bin \ g ++ -m64 -shared -m64 -o двоичные файлы / win64 / OU44_ZoneR2C2.dll OU44_ZoneR2C2_funcs.o OU44_ZoneR2C2_funcs.o OU44_ZoneR2C2_funcs.o OU44_ZoneR2C2_inoit_ZoneR2C2_inoit_OU44_ZoneR2C2_inoit_ZoneR2C2_init .o OU44_ZoneR2C2_equ.o OU44_ZoneR2C2_equ_init.o OU44_ZoneR2C2.o -LC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / lib / RuntimeLibrary64 -lfmi2 -cc-libstdc ++ -lfmi2 -cc-libstdc ++ -lfmi2 -cc-libstdc ++ -lfmi2 -cc-libstdc ++: Пользователи \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / lib -LC: \ Users \ taoy \ Documents \ Modelica Standard Library 3.2.3 \ Modelica 3.2.3 \ Resources \ Library / win64 / gcctdm510 -LC: \ Users \ taoy \ Documents \ Modelica Standard Library 3.2.3 \ Modelica 3.2.3 \ Resources \ Library / win64 -LC: \ Users \ taoy \ Documents \ Modelica Standard Library 3.2.3 \ Modelica 3.2.3 \ Resources \ Library -lModelicaStandardTables -lModelicaIO -lModelicaMatIO -lzlib -lModelicaExternalC -ljmi_get_set_default -lModelicaStandardTables -lModelicaIO -lModelicaMatIO -lzlib -lModelicaExternalC -ljmi_get_set_default -llapack -lblas-Users-liblgfm-lcd-lcd-lcd-lcd-lcd-lc: libm-lcd-lcd-lcd-lcd-lcd-lc: libm-lc-lcd-lcd-lcdlj-lcd-lcd-lcd / Роуминг \ JModelica.org-2. 14 \ install \ ThirdParty \ Sundials / lib64 -l: libsundials_kinsol.a -l: libsundials_nvecserial.a -l: libsundials_cvode.a -LC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / ThirdParty / Minpack / lib64 -l: libcminpack.a -LC: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install / ThirdParty / winpthreads / lib / winpthreads64 -l: libwinpthread.a C: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install \ Makefiles \ MakeFile: 214: рецепт для цели 'fmume20_' не удалось mingw32-make 1: выход из каталога 'C: / Users / taoy / AppData / Local / Temp / 1 / jmc7241264750773945049out' C: \ Users \ taoy \ AppData \ Roaming \ JModelica.org-2.14 \ install \ Makefiles \ MakeFile: 210: не удалось выполнить рецепт цели 'fmume20'
Неизвестная ошибка программы, org.jmodelica.util.exceptions.CcodeCompilationException: не удалось выполнить компиляцию сгенерированного кода C.
Расположение файла C: C: \ Users \ taoy \ AppData \ Local \ Temp \ 1 \ jmc7241264750773945049out \ sources \ OU44_ZoneR2C2.c - person Tao.Y; 22.02.2021