如何在CMake上编译Ignite应用程序?

时间:2019-02-16 08:40:40

标签: c++ ubuntu-16.04 ignite java-11 gcc5

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

/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 ++示例。例如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 

感谢您的阅读。 :)

1 个答案:

答案 0 :(得分: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上添加了JAVA_HOME,IGNITE_HOME。

终于可以了。

但是我遇到另一个问题。哈哈 我好伤心。

这也是GDB问题。