dlopen在rhel 7.2上失败,64位用于libjvm.so

时间:2017-02-02 19:46:52

标签: c++ dlopen rhel7

我在64位java进程中在RHEL 64上调用dlopen ("libjvm.so", RTLD_NOLOAD)。它失败了,错误:

 libjvm.so: invalid mode for dlopen(): Invalid argument

我做了lsof -p <pid of java process>,它将libjvm.so显示为已加载的模块。 libjvm.so是从路径jre1.8.0_121/lib/amd64/server/libjvm.so加载的。 无法找到有关该错误的更多信息。使用32位版本的java时,同样的工作正常。从lib/i386/client目录加载libjvm.so的位置。欣赏关于在哪里查找原因或此错误的真正含义的任何指示。感谢。

1 个答案:

答案 0 :(得分:1)

  

invalid mode for dlopen()

这是正确的错误:您使用无效模式调用dlopen

来自dlopen man page

One of the following two values must be included in flags:
   RTLD_LAZY ...
   RTLD_NOW  ...