我正在调用 dlopen ("libjvm.so", RTLD_NOLOAD)
在 64 位 java 进程中的 RHEL 64 上。它因错误而失败:
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 的位置目录。感谢有关在哪里查找原因或此错误的真正含义的任何指示。谢谢。
最佳答案
invalid mode for dlopen()
这是正确的错误:您使用无效模式调用了 dlopen
。
One of the following two values must be included in flags:
RTLD_LAZY ...
RTLD_NOW ...
关于c++ - dlopen 在 Rhel 7.2 上失败,64 位 libjvm.so,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42011053/