我使用 Omnet++ 和 Veins 进行模拟,直到我昨晚从 Ubuntu 15 升级到 16.04 LTS 之前它都工作正常。现在,我在尝试运行模拟时收到以下错误:
error while loading shared libraries: libmpi.so.1: cannot open shared object file: No such file or directory
我搜索了 libmpi.so.1,它似乎丢失了。 /usr/lib/openmpi/lib 中有文件 libmpi.so 和 libmpi.so.12,但没有 libmpi.so.1。我尝试卸载并重新安装软件包 openmpi-bin、libopenmpi-dev 以及从网站下载的 OpenMPI。我还在 bashrc 和 profile 中设置了变量(这是网上推荐的),使用
export LD_LIBRARY_PATH:=$PATH:/usr/lib/openmpi/lib/
这些方法都不起作用,我仍然遇到同样的错误。关于如何修复它以及如何获取文件 libmpi.so.1 有什么建议吗?
我可以通过在 /usr/lib 中添加一个符号链接 libmpi.so.1 来解决这个问题,该链接指向现有的 libmpi.so.12 (它再次指向 openmpi/lib 中实际文件的位置)。
显然,这是 OpenMPI 版本的问题,因为在我没有更新的其他系统上,有一个符号链接 libmpi.so.1 指向 libmpi.so.1.0.8 (但没有 libmpi.so .12).
如果即使将 lib 路径添加到 LD_LIBRARY_PATH 后仍不起作用,您可以使用 gcc 或 clang 的
-fuse-ld=lld
选项。