这个问题是向熟悉SimGrid的人提出的。从昨天开始,我就一直在困惑,但我无法从simgrid java中推出任何示例。它们中的每一个都失败了,但有一个例外:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/simgrid-java455637045639603622/libsimgrid.so: libboost_context.so.1.55.0: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
at java.lang.Runtime.load0(Runtime.java:795)
at java.lang.System.load(System.java:1062)
at org.simgrid.NativeLib.loadLib(NativeLib.java:116)
at org.simgrid.NativeLib.nativeInit(NativeLib.java:35)
at org.simgrid.NativeLib.nativeInit(NativeLib.java:26)
at org.simgrid.msg.Msg.<clinit>(Msg.java:115)
at async.AsyncTest.main(AsyncTest.java:14)
我该如何解决这个问题?
以下是我运行SimGridJava:示例所遵循的详细步骤
1) 我从这里下载了zip文件
1a)我安装了libboost-context-dev
,所以它是libboost-context-dev is already the newest version.
2) 在示例java目录中,我运行javac -classpath /home/ken/Downloads/simgrid.jar async/AsyncTest.java
3) 然后我运行java -classpath .:/home/ken/Downloads/simgrid.jar async/AsyncTest ../platforms/platform.xml ./async/asyncDeployment.xml
注意:我使用java version "1.7.0_95"
这是SimGrid v3.12版本中的一个记录错误。
正如ysdx所指出的,您应该在机器上手动安装boost上下文库,以便这个jar文件能够工作。此库的版本必须精确到1.55。如果你有Ubuntu或Debian,只需在终端中键入以下内容:
apt-get install libboost-context1.55.0
如果您的系统抱怨您的发行版中不存在此包,则此版本的jar文件在您的机器上不可用。如果发生这种情况,请尝试从Jenkins上的夜间构建中下载jar文件的另一个版本,如文档中所述。