Project使用旧版本的boost库

时间:2017-06-11 10:49:11

标签: c++ boost linker shared-libraries

我正在使用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还是有更好的解决方案?

1 个答案:

答案 0 :(得分:1)

有两种方法可以解决这个问题:

  1. 将PCL重新编译为当前的Boost并希望它仍然有效(可能性相对较高)

  2. 在当前系统版本的同时安装旧版本的boost。我不确定如何防止一般(无版本)符号链接创建(您可能不需要做任何特殊的事情)。保留其他版本的简单方法是将其安装到例如/opt/boost-1.63而不是/ usr。

  3. 两者都是同样的食物选择,只要第一种也适用。