项目使用旧版本的boost库

Project uses older version of boost library

我正在使用 arch,最近更新了我的系统。从那时起我就不能 link 使用 Point Cloud Library 的项目了。我在 linking:

期间收到此错误消息
[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)

我尝试创建 symlinks libboost_xxxxx.so.1.63.0 -> libboost_xxxxx.so.1.64.0

但是,虽然 linking 现在可以运行,但在执行过程中程序会崩溃。 我应该尝试安装较旧的 boot library 还是有更好的解决方案?

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

  1. 针对当前的 Boost 重新编译 PCL,希望它仍然有效(机会相对较高)

  2. 与当前系统版本一起安装旧版本的 boost。我不确定如何准确地阻止一般的(未版本化的)符号链接创建(您可能不需要做任何特殊的事情)。保留另一个版本的一种简单方法是将其安装到例如/opt/boost-1.63 而不是 /usr.

两者都是同样的食物选择,前提是第一个也有效。