Ubuntu 16.04上的PCL(点云库)1.7 LTS构建错误
我更新了Ubuntu版本从14.04 lts到16.04 lts ,并且在构建利用点云库的项目时遇到了问题。 (它曾经在Ubuntu 14.04很好地工作,我建我的项目qtcreator)Ubuntu 16.04上的PCL(点云库)1.7 LTS构建错误
的警告消息我是:
warning: libboost_system.so.1.54.0, needed by /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_common.so, may conflict with libboost_system.so.1.58.0
warning: libboost_thread.so.1.54.0, needed by /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_common.so, may conflict with libboost_thread.so.1.58.0
warning: libboost_filesystem.so.1.54.0, needed by /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_io.so, may conflict with libboost_filesystem.so.1.58.0
warning: libboost_iostreams.so.1.54.0, needed by /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_io.so, may conflict with libboost_iostreams.so.1.58.0
warning: libboost_chrono.so.1.54.0, needed by /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_io.so, may conflict with 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: error: undefined reference to `pcl::visualization::PCLVisualizer::setPointCloudRenderingProperties(int, double, std::__cxx11::basic_string, std::allocator > const&, int)'
~/main.cpp:-1: error: undefined reference to `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: In function `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: In function `pcl::search::OrganizedNeighbor::OrganizedNeighbor(bool, float, unsigned int)':
~/build-Desktop-Default/CMakeFiles/project_name.dir/main.cpp.o:-1: In function `pcl::search::OrganizedNeighbor::OrganizedNeighbor(bool, float, unsigned int)':
我可以请参阅libboost_system.so.1.54.0
和libboost_system.so.1.58.0
之间的冲突,但我该如何解决?
对于从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
我建议一个干净的un-并重新安装一个建议的方式。
这不提供问题的答案。一旦你有足够的[声誉](https://stackoverflow.com/help/whats-reputation),你将可以[对任何帖子发表评论](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- I-DO-代替)。 - [来自评论](/ review/low-quality-posts/17488856) – FluffyKitten
16.04配备了不同版本的Boost。您需要重新配置和重新构建PCL(或者使用您为此构建的Boost的任何库)。 – taketwo
我得到了同样的错误,我认为这是因为升级到16.04也升级libboost和PCL的版本需要重新配置和构建。建立PCL1.8,看看它是如何发展的。 – MrBomb1985