JModelica отказывается загружать libhsl.so

JModelica отказывается загружать файл libhsl.so в качестве общей библиотеки, хотя я установил LD_LIBRARY_PATH переменная:

Исключение типа: OPTION_INVALID в файле "../../../../Ipopt/src/Algorithm/IpAlgBuilder.cpp" в строке 321: Сообщение об исключении: выбранный линейный решатель MA27 недоступен. Попытка получить MA27 из общей библиотеки "libhsl.so", но произошла следующая ошибка: libhsl.so: невозможно открыть общий объектный файл: нет такого файла или каталога

Я пытался перекомпилировать и перезапустить JModelica разными способами.

Я поставил LD_LIBRARY_PATH соответственно.

Я бегал ldconfig,

Кажется, ничто не поможет.

Как я могу это исправить?

1 ответ

Решение

Начиная с версии 7885 ствола JModelica, JModelica грубо нарушает принцип наименьшего удивления.

JModelica предлагает вам использовать скрипт /usr/local/jmodelica/bin/jm_python.sh или что у вас для запуска кода JModelica.

Копаясь внутри этого скрипта, мы находим следующую строку:

LD_LIBRARY_PATH=:/root/Ipopt-3.12.4/build/lib/:/usr/local/jmodelica/ThirdParty/Sundials/lib:/usr/local/jmodelica/ThirdParty/CasADi/lib \

Обратите внимание, что LD_LIBRARY_PATH перезаписывается, поэтому не имеет значения, что вы установили как!

Изменение этой строки на:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/Ipopt-3.12.4/build/lib/:/usr/local/jmodelica/ThirdParty/Sundials/lib:/usr/local/jmodelica/ThirdParty/CasADi/lib \

решает проблемы.

Это было поднято как пользовательский патч на сайте JModelica здесь 2015-05-03. Патч был представлен на Revision 8185 для исправления проблемы, но после этого он продолжал появляться для меня в багажнике.

Другие вопросы по тегам