nebula-third-party编译s2geometry问题,验证单个项目未安装共享库

编译nebula-third-party时到s2geometry软件,报错:
make[2]: *** [build-info/s2geometry-verify] Error 1
make[1]: *** [CMakeFiles/s2geometry.dir/all] Error 2
在s2geometry-install-out.log看到有
– Installing: ***/install/lib64/python3.6/site-packages/_pywraps2.so
– Installing: ***/install/lib64/python3.6/site-packages/pywraps2.py
在这里有安装_pywraps2.so,所以在校验时,执行check-so-libs.sh里面的so_in_lib64=find $install_dir/lib64 -name *.so
有找到这个_pywraps2.so,因此会失败退出,这是什么情况呢?

当s2geometry同时发现机器上有swig和python的时候会编译这个库,通常在我们的构建环境中没有swig所以不会生成这个.so文件,进而不会报错。

有两个解决方案:1、卸载本机的swig;2、在s2geometry的cmake文件里添加一条删除.so文件的命令(可以参考这个cmake文件 https://github.com/vesoft-inc/nebula-third-party/blob/master/project/externals/libaio.cmake

2 个赞

换了一个新的环境,在5%的时候报错这个

/usr/bin/ld: …/lib/.libs/libsasl2.a(otp.o): in function opie_server_mech_dispose': otp.c:(.text+0xfc): undefined reference to opieverify’
/usr/bin/ld: …/lib/.libs/libsasl2.a(otp.o): in function opie_server_mech_step': otp.c:(.text+0x2fd): undefined reference to opiechallenge’
/usr/bin/ld: otp.c:(.text+0x369): undefined reference to opieverify' collect2: error: ld returned 1 exit status make[5]: *** [sasldblistusers2] Error 1 make[5]: *** Waiting for unfinished jobs.... /usr/bin/ld: ../lib/.libs/libsasl2.a(otp.o): in function opie_server_mech_dispose’:
otp.c:(.text+0xfc): undefined reference to opieverify' /usr/bin/ld: ../lib/.libs/libsasl2.a(otp.o): in function opie_server_mech_step’:
otp.c:(.text+0x2fd): undefined reference to opiechallenge' /usr/bin/ld: otp.c:(.text+0x369): undefined reference to opieverify’
collect2: error: ld returned 1 exit status
/usr/bin/ld: …/lib/.libs/libsasl2.a(otp.o): in function opie_server_mech_dispose': otp.c:(.text+0xfc): undefined reference to opieverify’
/usr/bin/ld: …/lib/.libs/libsasl2.a(otp.o): in function opie_server_mech_step': otp.c:(.text+0x2fd): undefined reference to opiechallenge’
/usr/bin/ld: otp.c:(.text+0x369): undefined reference to opieverify' collect2: error: ld returned 1 exit status make[5]: *** [dbconverter-2] Error 1 make[5]: *** [pluginviewer] Error 1 /usr/bin/ld: ../lib/.libs/libsasl2.a(otp.o): in function opie_server_mech_dispose’:
otp.c:(.text+0xfc): undefined reference to opieverify' /usr/bin/ld: ../lib/.libs/libsasl2.a(otp.o): in function opie_server_mech_step’:
otp.c:(.text+0x2fd): undefined reference to opiechallenge' /usr/bin/ld: otp.c:(.text+0x369): undefined reference to opieverify’
collect2: error: ld returned 1 exit status
make[5]: *** [saslpasswd2] Error 1

这又是什么原因啊,求大神

这是编译什么的时候报的错?

编译这个cyrus-sasl这个

这个一般不会报错的,从你的log目前看不到直接的根因。能否提供系统、gcc cmake等环境版本信息?

如果是常见的发行版我们可以提供编译好的third party

vesoft-third-party-3.0-x86_64-libc-2.28-gcc-9.3.0-abi-11.sh

https://oss-cdn.nebula-graph.com.cn/third-party/3.0/vesoft-third-party-3.0-x86_64-libc-2.28-gcc-10.1.0-abi-11.sh
这个版本的也下载不下来啊
gcc 10.3可以用vesoft-third-party-3.0-x86_64-libc-2.28-gcc-9.3.0-abi-11.sh这个版本的吗

由于系统和编译器的组合很多,之前会存在一些组合未发布的情况。可以补充发布gcc10的third party,在此之前你可以先用gcc9.3.0的试一下(可能不能用),我先针对你的系统编译器组合出一个。

我在arm环境中用gcc10.3.0编译nebula-third-party这个三方组件时,在编译到glog时遇到一个错误:
make[2]: *** [CMakeFiles/glog.dir/build.make:116: build-info/glog-build] Error 1
make[1]: *** [CMakeFiles/Makefile2:2283: CMakeFiles/glog.dir/all] Error 2
Building failed, see /usr1/build/build.log for more details.
查看glog-build-err.log发现:

/usr/bin/ld: /usr1/build/install/lib/libunwind.a(Lfind_proc_info-lsb.o): in function `locate_debug_info':
Lfind_proc_info-lsb.c:(.text+0x8a8): undefined reference to `uncompress'
collect2: error: ld returned 1 exit status
make[5]: *** [CMakeFiles/signalhandler_unittest.dir/build.make:87: signalhandler_unittest] Error 1
make[4]: *** [CMakeFiles/Makefile2:184: CMakeFiles/signalhandler_unittest.dir/all] Error 2
make[4]: *** Waiting for unfinished jobs....
/usr/bin/ld: /usr1/build/install/lib/libunwind.a(Lfind_proc_info-lsb.o): in function `locate_debug_info':
Lfind_proc_info-lsb.c:(.text+0x8a8): undefined reference to `uncompress'
/usr/bin/ld: /usr1/build/install/lib/libunwind.a(Lfind_proc_info-lsb.o): in function `locate_debug_info':
Lfind_proc_info-lsb.c:(.text+0x8a8): undefined reference to `uncompress'
/usr/bin/ld: /usr1/build/install/lib/libunwind.a(Lfind_proc_info-lsb.o): in function `locate_debug_info':
Lfind_proc_info-lsb.c:(.text+0x8a8): undefined reference to `uncompress'
collect2: error: ld returned 1 exit status
make[5]: *** [CMakeFiles/utilities_unittest.dir/build.make:87: utilities_unittest] Error 1
make[4]: *** [CMakeFiles/Makefile2:211: CMakeFiles/utilities_unittest.dir/all] Error 2
/usr/bin/ld: /usr1/build/install/lib/libunwind.a(Lfind_proc_info-lsb.o): in function `locate_debug_info':
Lfind_proc_info-lsb.c:(.text+0x8a8): undefined reference to `uncompress'
collect2: error: ld returned 1 exit status
make[5]: *** [CMakeFiles/cleanup_immediately_unittest.dir/build.make:87: cleanup_immediately_unittest] Error 1
make[4]: *** [CMakeFiles/Makefile2:157: CMakeFiles/cleanup_immediately_unittest.dir/all] Error 2
collect2: error: ld returned 1 exit status
make[5]: *** [CMakeFiles/cleanup_with_absolute_prefix_unittest.dir/build.make:87: cleanup_with_absolute_prefix_unittest] Error 1
make[4]: *** [CMakeFiles/Makefile2:130: CMakeFiles/cleanup_with_absolute_prefix_unittest.dir/all] Error 2
/usr/bin/ld: /usr1/build/install/lib/libunwind.a(Lfind_proc_info-lsb.o): in function `locate_debug_info':
Lfind_proc_info-lsb.c:(.text+0x8a8): undefined reference to `uncompress'
collect2: error: ld returned 1 exit status
make[5]: *** [CMakeFiles/symbolize_unittest.dir/build.make:87: symbolize_unittest] Error 1
make[4]: *** [CMakeFiles/Makefile2:265: CMakeFiles/symbolize_unittest.dir/all] Error 2
collect2: error: ld returned 1 exit status
make[5]: *** [CMakeFiles/demangle_unittest.dir/build.make:87: demangle_unittest] Error 1
make[4]: *** [CMakeFiles/Makefile2:238: CMakeFiles/demangle_unittest.dir/all] Error 2
/usr/bin/ld: /usr1/build/install/lib/libunwind.a(Lfind_proc_info-lsb.o): in function `locate_debug_info':
Lfind_proc_info-lsb.c:(.text+0x8a8): undefined reference to `uncompress'
/usr/bin/ld: /usr1/build/install/lib/libunwind.a(Lfind_proc_info-lsb.o): in function `locate_debug_info':
Lfind_proc_info-lsb.c:(.text+0x8a8): undefined reference to `uncompress'
collect2: error: ld returned 1 exit status
make[5]: *** [CMakeFiles/logging_custom_prefix_unittest.dir/build.make:87: logging_custom_prefix_unittest] Error 1
make[4]: *** [CMakeFiles/Makefile2:292: CMakeFiles/logging_custom_prefix_unittest.dir/all] Error 2
collect2: error: ld returned 1 exit status
make[5]: *** [CMakeFiles/logging_unittest.dir/build.make:87: logging_unittest] Error 1
make[4]: *** [CMakeFiles/Makefile2:319: CMakeFiles/logging_unittest.dir/all] Error 2
make[3]: *** [Makefile:163: all] Error 2

编译方式:
path=$(pwd)/…/nebula-third-party-master
build_package=1 $path/build.sh /usr1/vesoft/third-party/5.0
这个能怎么解决吗

能不能提供一个arm的版本的vesoft-third-party-3.0-aarch64-libc-2.28-gcc-9.3.0-abi-11.sh的编译好的third party啊

这个版本有提供的,你的源码目录下,third-party目录里install third party的安装脚本,执行后可以安装

先明确你要编译的nebula版本是多少,third party的master分支(5.0)不适用于你

13 个帖子被合并到现有话题中:Nebula v3.0三方件在arm环境上的fbthrift编译问题