JModelica拒绝将文件libhsl.so
加载为共享库,即使我已设置LD_LIBRARY_PATH
变量:
类型的异常:第321行的文件“../../../../Ipopt/src/Algorithm/IpAlgBuilder.cpp”中的OPTION_INVALID: 异常消息:选定的线性求解器MA27不可用。 试图从共享库“libhsl.so”获取MA27,但发生以下错误: libhsl.so:无法打开共享对象文件:没有这样的文件或目录
我尝试过以多种方式重新编译和重新运行JModelica。
我已正确设置LD_LIBRARY_PATH
。
我已经开始ldconfig
。
似乎没有任何帮助。
我该如何解决这个问题?
答案 0 :(得分:1)
从JModelica主干的版本7885开始,JModelica严重违反了Principle of Least Astonishment。
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 \
解决问题。
这是在2015-05-03在JModelica的网站here上作为用户补丁提出的。大约在修订版8185上提交了一个修补程序以解决问题,但在此之后它继续在我的行李箱上出现。