编译安装一些开源SLAM时,各个依赖的PCL版本不一致,使用相同版本的PCL会导致结果不理想,因此有使用多版本PCL的需求。
Ubuntu16.04下命令行安装的PCL是1.7.2,默认安装位置有/usr/include/pcl-1.7下的头文件和源文件,/usr/lib/x86_64-linux-gnu/cmake/pcl下的cmake相关文件和/usr/bin下的可执行文件
sudo apt install libpcl-dev
其他版本需从源码安装,以PCL1.9.2为例
tar xvfj pcl-pcl-1.9.2.tar.gz
cd pcl-pcl-1.9.2 && mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/usr/pcl-1.9 ..
其中usr需要改成自己的用户名,这样pcl1.9将会安装在主文件夹下pcl1.9中,如果不指定安装路径,默认会安装在/usr/local路径下,会和其它版本pcl冲突。
安装完成后pcl-1.9目录结构如下:
安装后在CMakeLists.txt中指定PCL_DIR路径(即PCLConfig.cmake文件路径)即可:
set(PCL_DIR "/home/usr/pcl-1.9/share/pcl-1.9")
find_package(PCL 1.9 REQUIRED COMPONENTS)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINATIONS})