我想评估 PARDISO(https://www.pardiso-project.org/) 求解器。我在 Ubuntu 20.04 LTS 上使用 MATLAB 2020b 对其进行测试。当我下载相应的文件并想要运行测试时,出现错误,Invalid MEX-file '/home/<username>/Documents/PARDISO/ipopt.mexa64': libgfortran.so.3: cannot open shared object file: No such file or directory
但.mexa64
文件存在。我搜索了这个错误,发现我很可能需要 gfortran3 来运行这个文件,但 Ubuntu 20.04 LTS 不再支持 gfortran3。我该怎么办?还有其他可能解决这个问题吗?
答案1
我遇到了和你完全相同的问题,我只需复制现有的 libfortran3 安装即可解决这个问题。链接是“https://www.dropbox.com/s/01zxukpydgi749a/libgfort.tar?dl=1”,选择 32 位或 64 位选项,然后将其解压到安装pardiso
文件夹中。
确保使用命令将 libfortran 添加到路径中
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your path here/pardiso_install_folder
完成后,通过执行以下操作检查 .mexa64 可执行文件是否已链接所有必需的库
ldd ipopt.mexa64
在pardiso
安装文件夹中并链接相应的库。我对这一切也还很陌生,所以如果它有效的话请告诉我。
答案2
我能够解决这个问题
- 首先找到 matlab 的 libgfortran 文件,对我来说它位于
<YOUR MATLAB PATH>/MATLAB/sys/os/glnxa64/libgfortran.so.3.0.0
- 在同一路径下创建此文件的链接
ln -s libgfortran.so.3.0.0 libgfortran.so.3
错误随后消失了。希望这对某人有帮助。