Ubuntu16.04安装配置PCL1.9.0及问题解决
在安装PCL1.8.0时,出现以下问题
CMake Error at cmake/pcl_utils.cmake:397 (message):
size mismatch between PCL_MODULES_NAMES (length 27) and
PCL_MODULES_NAMES_UNSORTED (length 25)
Call Stack (most recent call first):
CMakeLists.txt:438 (sort_relative)
参考:https://blog.csdn.net/Bobby95/article/details/88643268 博客时并没有解决问题,于是改为安装pcl1.9.0。
安装方式采用源码安装
1.安装相关依赖
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev
(注:vtk建议采用源码安装方式,可自行搜索)
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre
sudo apt-get install libopenni-dev
sudo apt-get install libopenni2-dev
2、下载源码:
githubl链接:https://github.com/PointCloudLibrary/pcl/releases
3、编译
解压下载的PCL1.9源码包
cd pcl-1.9.0
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install
4、make时遇到的问题
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libSM.so:对‘uuid_generate@UUID_1.0’未定义的引用
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libSM.so:对‘uuid_unparse_lower@UUID_1.0’未定义的引用
collect2: error: ld returned 1 exit status
tools/CMakeFiles/pcl_tiff2pcd.dir/build.make:232: recipe for target 'bin/pcl_tiff2pcd' failed
make[2]: *** [bin/pcl_tiff2pcd] Error 1
CMakeFiles/Makefile2:7340: recipe for target 'tools/CMakeFiles/pcl_tiff2pcd.dir/all' failed
make[1]: *** [tools/CMakeFiles/pcl_tiff2pcd.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....
解决办法:缺少库文件
sudo apt-get insatll libsm-dev
sudo apt-get install uuid-dev
安装完相应的库之后,编译时还是同样的问题,最后发现使用anaconda3环境时会先搜索anaconda3/lib里面的库文件导致的,当搜到了就不在使用刚才新装的uuid库文件
解决办法:
把anaconda3/lib下的libuuid库文件移走就好
ls ~/anaconda3/lib/libuuid*
mkdir ~/anaconda3/libuuid
mv ~/anaconda3/lib/libuuid* ~/anaconda3/libuuid
参考链接:https://blog.csdn.net/u014734886/article/details/93029349
https://blog.csdn.net/cserchen/article/details/5503556
https://stackoverflow.com/questions/45584275/getting-error-usr-lib-lib64-libsm-so-undefined-reference-to-uuid-unparse-l
版权声明:本文为gangzi0929原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。