我正在使用arch,最近更新了我的系统。从那时起,我无法使用Point Cloud Library链接项目。我在链接过程中收到此错误消息:

[100%] Linking CXX executable cloud_viewer
/usr/bin/ld: warning: libboost_system.so.1.63.0, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../lib/libpcl_common.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libboost_thread.so.1.63.0, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../lib/libpcl_common.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libboost_iostreams.so.1.63.0, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/7.1.1/../../../../lib/libpcl_io.so, not found (try using -rpath or -rpath-link)


我尝试创建符号链接libboost_xxxxx.so.1.63.0 -> libboost_xxxxx.so.1.64.0

但是,现在链接工作时,在执行过程中程序崩溃了。
我应该只是尝试安装较旧的boot library还是有更好的解决方案?

最佳答案

有两种解决方法:


对照当前的Boost重新编译PCL,并希望它仍然有效(机会相对较高)
在您当前的系统版本中安装旧版本的boost。我不确定如何确切地防止常规(未版本化)符号链接的创建(您可能不需要做任何特别的事情)。保留另一个版本的一种简单方法是将其安装到例如/opt/boost-1.63而不是/ usr。


两者都是同等的食物选择,前提是第一个也可以使用。

关于c++ - 项目使用旧版的Boost库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44482962/

10-10 01:34