0

我确实成功编译了 Ignite 应用程序。但二进制文件不起作用。

/tmp/tmp.Nw0IPD6ru3/cmake-build-debug-local-container/planet_engine: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory

我怎样才能让它发挥作用?

此外,我成功编译了 C++ 示例。例如点燃计算示例。而且,我执行了该操作,但收到一条错误消息。 An error occurred: JVM library is not found (did you set JAVA_HOME environment variable?)

我使用的是每晚发布版本2.8.0.20190213,因为我无法在我的环境中构建到 2.7 版。

我发布了环境值。

IGNITE_HOME=
TERM=xterm-256color
SHELL=/bin/bash 
LIBRARY_PATH=/root/jre1.8.0_201/lib/amd64/server:/root/jre1.8.0_201/lib/amd64/
LC_NUMERIC=ko_KR.UTF-8
SSH_TTY=/dev/pts/0
JRE_HOME=/root/jre1.8.0_201
USER=root
LS_COLORS=rs=0:d...
LD_LIBRARY_PATH=/root/jre1.8.0_201/lib/amd64/server:/root/jre1.8.0_201/lib/amd64/
CLASS_PATH=/root/jdk-11.0.2/lib:
LC_TELEPHONE=ko_KR.UTF-8
MAIL=/var/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/jdk-11.0.2/bin
LC_IDENTIFICATION=ko_KR.UTF-8 
JAVA_HOME=/root/jdk-11.0.2
LANG=en_US.UTF-8
LC_MEASUREMENT=ko_KR.UTF-8
JDK_HOME=/root/jdk-11.0.2/lib
SHLVL=1
HOME=/root
LOGNAME=root 
LESSOPEN=| /usr/bin/lesspipe %s
LESSCLOSE=/usr/bin/lesspipe %s %s
LC_TIME=ko_KR.UTF-8
LC_NAME=ko_KR.UTF-8
_=/usr/bin/env 

感谢您的阅读。:)

4

1 回答 1

0

我知道了。

我正在开发一个 docker 容器环境。

因此我使用 ssh 和 gdb 进行远程构建和调试。

最后,我发现它为什么找不到libjvm.so以及为什么无法读取环境值,例如JAVA_HOME.

因为它现在在 gdb 中工作。

我确认它在没有 gdb 的情况下工作。

我会找到解决办法的。而且,如果我被发现了,我会更新答案。


[解决了]

我分享我是如何解决这个问题的。

我通过源安装使用 Oracle JDK-11。

但是 Ignite C++ 客户端需要与最新发布的 jdk 版本不同的东西。

点燃需要这样的目录结构

JAVA_HOME/ (as JDK install directory)
  - jre/
    - lib/
  - lib/
  ...

我解决了apt install openjdk-8-jdk。openjdk-8-jdk 具有 Ignite 需要的结构。

我在/etc/environment.

它终于起作用了。

但我遇到了另一个问题。哈哈我好难过。

这也是GDB问题..

于 2019-02-16T17:09:30.213 回答