nebula3.5.0编译失败

  • nebula 版本:3.5.0
  • 部署方式:分布式
  • 安装方式:源码编译
  • 是否上生产环境:N
  • 问题的具体描述:编译时报错

有没有安装 nebula 依赖的 third party,看错误是找不到 rocksdb 的依赖。third party 的安装教程可以参看这里

1 个赞


依赖的 third party装了的,还是报错

检查一下 cmake configure 阶段是 NEBULA_THIRDPARTY_ROOT 这个变量是否对应着安装的目录


也没问题,关键时只有rocksdb的依赖拉不到

我看之前也有人遇到类似的问题

好像也没得到解决,是不是有bug

看你的 cmake configure 阶段的 NEBULA_THIRDPARTY_ROOT 变量指向了 /opt/vesoft/third-party,这个路径是不正确的,你可以手动指定再编译试试,类似下面这样:

cmake -DNEBULA_THIRDPARTY_ROOT=/opt/vesoft/third-party/3.3 ..

编译前我已经将 /opt/vesoft/third-party/3.3 目录下的文件拷贝了一份到 /opt/vesoft/third-party 目录,所以这个路径是可以正常使用的。
DNEBULA_THIRDPARTY_ROOT 这个路径应该没问题的,有问题的话,应该一开始编译就报错了,我这个编译到80%多才报错。

建议不要这样做,因为 third-party 下有 2.0 版本的依赖,很多库如果处理不好有可能链接到老的版本。你先使用 3.3 的路径编译试试看

还是相同的报错,怎么判断third-party里有没有rocksdb的依赖包?

rocksdb 的依赖包安装在 third-party/3.3/lib 目录下面,我使用 nm 查看了其中的某些符号是存在的。你在编译的时候,不知是否将对应的 build 目录完全清空然后再执行 cmake 的配置命令,你可以检查下 librocksdb.a 是否存在。

1 个赞

我编译的时候出现这种错误是因为我采用了多线程进行编译,eg make -j4/j2之类的,但是如果当我采用make命令时就会成功编译了

我们内部本地或者线上 CI 环境也都是通过多线程编译的,这里面可能还是哪里有问题

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。