收到错误 "error while loading shared libraries: libmpi.so.1: cannot open shared object file: No such file or directory"
Getting an error "error while loading shared libraries: libmpi.so.1: cannot open shared object file: No such file or directory"
在 Omnet++ 中 运行 静脉模拟时出现错误 "error while loading shared libraries: libmpi.so.1: cannot open shared object file: No such file or directory"
编辑:
我重新安装了 omnet++,现在我收到这个错误:
JVM terminated. Exit code=13
/home/jayabalan/usr/omnetpp-4.6/ide/jre/bin/java
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx1024m
-XX:MaxPermSize=320m
-Dosgi.instance.area.default=/home/jayabalan/usr/omnetpp-4.6/bin/../ide/../samples
-jar /home/jayabalan/usr/omnetpp-4.6/ide//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
-os linux
-ws gtk
-arch x86_64
-showsplash
-launcher /home/jayabalan/usr/omnetpp-4.6/ide/omnetpp
-name OMNeT++ IDE
--launcher.library /home/jayabalan/usr/omnetpp-4.6/ide//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140603-1326/eclipse_1605.so
-startup /home/jayabalan/usr/omnetpp-4.6/ide//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.appendVmargs
-exitdata 340021
-vm /home/jayabalan/usr/omnetpp-4.6/ide/jre/bin/java
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx1024m
-XX:MaxPermSize=320m
-Dosgi.instance.area.default=/home/jayabalan/usr/omnetpp-4.6/bin/../ide/../samples
-jar /home/jayabalan/usr/omnetpp-4.6/ide//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
第一个错误:
可能会发生以下两种情况之一(或同时发生两种情况):
1 – 您没有特定的库(不太可能,因为编译器和链接器会构建并链接到库符号)。
2 – 路径不正确,运行时二进制无法正确定位lib。
我假设您使用的是 Linux 风格,我还注意到您在两个环境变量中附加了一组冒号,即 ( :: )
$PATH
$LD_LIBRARY_PATH
这可能是您错误地将路径附加到变量的结果(尝试通过在不带冒号的情况下再次附加环境变量来删除其中一个冒号)。
例如:
附加到现有环境变量
打印我当前的环境变量到控制台:
(LD_LIBRARY_PATH 相同)
VirtualBox:~$ echo $PATH
/usr/local/polysync/utils/x86_64.linux/bin:/usr/local/polysync/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
在 $PATH 的末尾追加一个新路径
export PATH=$PATH:/boom/yea
VirtualBox:~$ echo $PATH
/usr/local/polysync/utils/x86_64.linux/bin:/usr/local/polysync/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/boom/yea
滚动查看附加路径。
下面post很好的描述了这个过程:
https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path
同时使用以下方法检查您是否拥有该库:
VirtualBox:~$ sudo find / lib | grep libmpi.so.1
希望这对您有所帮助。您需要注销并重新登录 Eclipse 才能看到更改。如果您 post 输入字符串而不是屏幕截图(复制并粘贴控制台输出以获取示例),也会有所帮助。
第二个错误:
几乎可以肯定是 Java SDK/JDK 版本问题或路径问题导致 Eclispe 环境无法启动。
检查您的 Java 版本:
$ java -version
因为
-Dosgi.requiredJavaVersion=1.7
错误日志中的输出表明它正在寻找 1.7。
然后检查这个 post 描述了这个问题的许多解决方案:
Can't start Eclipse - Java was started but returned exit code=13
在 Omnet++ 中 运行 静脉模拟时出现错误 "error while loading shared libraries: libmpi.so.1: cannot open shared object file: No such file or directory"
编辑:
我重新安装了 omnet++,现在我收到这个错误:
JVM terminated. Exit code=13
/home/jayabalan/usr/omnetpp-4.6/ide/jre/bin/java
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx1024m
-XX:MaxPermSize=320m
-Dosgi.instance.area.default=/home/jayabalan/usr/omnetpp-4.6/bin/../ide/../samples
-jar /home/jayabalan/usr/omnetpp-4.6/ide//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
-os linux
-ws gtk
-arch x86_64
-showsplash
-launcher /home/jayabalan/usr/omnetpp-4.6/ide/omnetpp
-name OMNeT++ IDE
--launcher.library /home/jayabalan/usr/omnetpp-4.6/ide//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140603-1326/eclipse_1605.so
-startup /home/jayabalan/usr/omnetpp-4.6/ide//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.appendVmargs
-exitdata 340021
-vm /home/jayabalan/usr/omnetpp-4.6/ide/jre/bin/java
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx1024m
-XX:MaxPermSize=320m
-Dosgi.instance.area.default=/home/jayabalan/usr/omnetpp-4.6/bin/../ide/../samples
-jar /home/jayabalan/usr/omnetpp-4.6/ide//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
第一个错误:
可能会发生以下两种情况之一(或同时发生两种情况):
1 – 您没有特定的库(不太可能,因为编译器和链接器会构建并链接到库符号)。
2 – 路径不正确,运行时二进制无法正确定位lib。
我假设您使用的是 Linux 风格,我还注意到您在两个环境变量中附加了一组冒号,即 ( :: )
$PATH
$LD_LIBRARY_PATH
这可能是您错误地将路径附加到变量的结果(尝试通过在不带冒号的情况下再次附加环境变量来删除其中一个冒号)。
例如:
附加到现有环境变量
打印我当前的环境变量到控制台: (LD_LIBRARY_PATH 相同)
VirtualBox:~$ echo $PATH
/usr/local/polysync/utils/x86_64.linux/bin:/usr/local/polysync/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
在 $PATH 的末尾追加一个新路径
export PATH=$PATH:/boom/yea
VirtualBox:~$ echo $PATH
/usr/local/polysync/utils/x86_64.linux/bin:/usr/local/polysync/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/boom/yea
滚动查看附加路径。
下面post很好的描述了这个过程:
https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path
同时使用以下方法检查您是否拥有该库:
VirtualBox:~$ sudo find / lib | grep libmpi.so.1
希望这对您有所帮助。您需要注销并重新登录 Eclipse 才能看到更改。如果您 post 输入字符串而不是屏幕截图(复制并粘贴控制台输出以获取示例),也会有所帮助。
第二个错误:
几乎可以肯定是 Java SDK/JDK 版本问题或路径问题导致 Eclispe 环境无法启动。
检查您的 Java 版本:
$ java -version
因为
-Dosgi.requiredJavaVersion=1.7
错误日志中的输出表明它正在寻找 1.7。
然后检查这个 post 描述了这个问题的许多解决方案:
Can't start Eclipse - Java was started but returned exit code=13