【问题标题】:PCL (point cloud library) 1.7 on Ubuntu 16.04 LTS build errorUbuntu 16.04 LTS 上的 PCL(点云库)1.7 构建错误
【发布时间】:2016-12-07 06:16:25
【问题描述】:

我将 Ubuntu 版本从 14.04 lts 更新到 16.04 lts 在构建使用点云库的项目时遇到问题。 (它曾经在 Ubuntu 14.04 上运行良好,我使用 qtcreator 构建我的项目)

我收到的警告信息是:

警告:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_common.so 需要的 libboost_system.so.1.54.0,可能会发生冲突与 libboost_system.so.1.58.0

警告:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_common.so 需要的 libboost_thread.so.1.54.0,可能会发生冲突与 libboost_thread.so.1.58.0

警告:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_io.so 需要的 libboost_filesystem.so.1.54.0,可能会发生冲突与 libboost_filesystem.so.1.58.0

警告:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_io.so 需要的 libboost_iostreams.so.1.54.0,可能会发生冲突与 libboost_iostreams.so.1.58.0

警告:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_io.so 需要的 libboost_chrono.so.1.54.0,可能会发生冲突与 libboost_chrono.so.1.58.0

错误是:

~/main.cpp:-1: error: undefined reference to `pcl::visualization::PCLVisualizer::PCLVisualizer(std::__cxx11::basic_string, std::allocator > const&, bool)'

~/main.cpp:-1: 错误:未定义对 `pcl::visualization::PCLVisualizer::setPointCloudRenderingProperties(int, double, std::__cxx11::basic_string, std::allocator > const&, int) 的引用'

~/main.cpp:-1: 错误:未定义对 `pcl::visualization::PCLVisualizer::setPointCloudRenderingProperties(int, double, std::__cxx11::basic_string, std::allocator > const&, int) 的引用'

~/build-Desktop-Default/CMakeFiles/project_name.dir/main.cpp.o:-1: 在函数`pcl::search::OrganizedNeighbor::OrganizedNeighbor(bool, float, unsigned int)'中:

~/main.cpp:-1: error: undefined reference to `pcl::search::Search::Search(std::__cxx11::basic_string, std::allocator > const&, bool)'

~/build-Desktop-Default/CMakeFiles/project_name.dir/main.cpp.o:-1: 在函数`pcl::search::OrganizedNeighbor::OrganizedNeighbor(bool, float, unsigned int)'中:

~/build-Desktop-Default/CMakeFiles/project_name.dir/main.cpp.o:-1: 在函数`pcl::search::OrganizedNeighbor::OrganizedNeighbor(bool, float, unsigned int)'中:

我可以看到libboost_system.so.1.54.0 和libboost_system.so.1.58.0 之间存在冲突,但我该如何解决呢?

【问题讨论】:

  • 16.04 带有不同版本的 Boost。您需要重新配置和重建 PCL(或任何使用 Boost 的库,您为此从源代码构建)。
  • 我得到了同样的错误,我想是因为升级到 16.04 还升级了 libboost 的版本,PCL 需要重新配置和构建。立即构建 PCL1.8,看看进展如何。

标签: point-cloud-library ubuntu-16.04


【解决方案1】:

要在 16.04 上从源代码构建 pcl,请遵循此 tutorial。 但是没有理由不构建 PCL 1.8 而不是 1.7.x,因为它向下兼容。

此外,用于 1.7.2 的 Jochen Sprieckerhof 存储库在 1.7.2 中已过时,因为在 Ubuntu 16.04 中有一个本机 repository。你可以简单地做

sudo apt-get update 
sudo apt-get install libpcl-dev

我建议以建议的方式之一彻底卸载并重新安装。

【讨论】:

    【解决方案2】:

    也许你应该下载这个文件PCL-1.8-linux.deb,

    然后运行这段代码:

    sudo dpkg -i PCL-1.8-linux.deb.
    

    【讨论】:

      猜你喜欢
      • 2016-09-19
      • 2017-06-03
      • 2022-08-24
      • 2016-08-29
      • 2018-05-18
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 2017-06-26
      相关资源
      最近更新 更多