我将Ubuntu版本从14.04更新到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:错误:未定义引用`pcl :: visualization :: PCLVisualizer :: PCLVisualizer(std :: __ cxx11 :: basic_string,std :: allocator> const&,bool)&# 39;
〜/ 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)&#39 ;:
〜/ main.cpp:-1:错误:未定义引用`pcl :: search :: Search :: Search(std :: __ cxx11 :: basic_string,std :: allocator> const&,bool)&# 39;
〜/ build-Desktop-Default / CMakeFiles / project_name.dir / main.cpp.o:-1:在函数`pcl :: search :: OrganizedNeighbor :: OrganizedNeighbor(bool,float,unsigned int)&#39 ;:
〜/ build-Desktop-Default / CMakeFiles / project_name.dir / main.cpp.o:-1:在函数`pcl :: search :: OrganizedNeighbor :: OrganizedNeighbor(bool,float,unsigned int)&#39 ;:
我可以看到libboost_system.so.1.54.0
和libboost_system.so.1.58.0
之间存在冲突,但我该如何解决呢?
答案 0 :(得分: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
我建议使用其中一种方法进行清洁,然后重新安装。
答案 1 :(得分:0)