如何在 CMake 上编译 Ignite 应用程序?
how to compile Ignite application on CMake?
我确实成功编译了 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++ Examples。例如 ignite-compute-example。
而且,我执行了它,但我收到了一条错误消息。
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
感谢您的阅读。 :)
我明白了。
我正在 docker 容器环境中工作。
因此我使用 ssh 和 gdb 进行远程构建和调试。
终于找到了为什么找不到libjvm.so
以及为什么不能读取环境值如JAVA_HOME
.
因为它目前在 gdb 中工作。
我确认它在没有 gdb 的情况下也能正常工作。
我会找到解决办法的。
并且,如果我被发现,我会更新答案。
[已解决]
我分享我是如何解决这个问题的。
我通过源安装使用 Oracle JDK-11。
但 Ignite C++ 客户端需要与最新发布的 jdk 版本不同的东西。
Ignite 需要这样的目录结构
JAVA_HOME/ (as JDK install directory)
- jre/
- lib/
- lib/
...
我通过apt install openjdk-8-jdk
解决了。
openjdk-8-jdk 有 Ignite 需要的结构。
我在 /etc/environment
添加了 JAVA_HOME、IGNITE_HOME。
终于成功了。
但我遇到了另一个问题。哈哈
我好难过
这也是GDB的问题..
我确实成功编译了 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++ Examples。例如 ignite-compute-example。
而且,我执行了它,但我收到了一条错误消息。
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
感谢您的阅读。 :)
我明白了。
我正在 docker 容器环境中工作。
因此我使用 ssh 和 gdb 进行远程构建和调试。
终于找到了为什么找不到libjvm.so
以及为什么不能读取环境值如JAVA_HOME
.
因为它目前在 gdb 中工作。
我确认它在没有 gdb 的情况下也能正常工作。
我会找到解决办法的。 并且,如果我被发现,我会更新答案。
[已解决]
我分享我是如何解决这个问题的。
我通过源安装使用 Oracle JDK-11。
但 Ignite C++ 客户端需要与最新发布的 jdk 版本不同的东西。
Ignite 需要这样的目录结构
JAVA_HOME/ (as JDK install directory)
- jre/
- lib/
- lib/
...
我通过apt install openjdk-8-jdk
解决了。
openjdk-8-jdk 有 Ignite 需要的结构。
我在 /etc/environment
添加了 JAVA_HOME、IGNITE_HOME。
终于成功了。
但我遇到了另一个问题。哈哈 我好难过
这也是GDB的问题..