Ubuntu16.04下安装PCL1.9点云库以及使用的Cmakelists

  • Ubuntu16.04使用apt get默认安装PCL1.7,由于1.7版本与官方教程提供源码经常不一致,因此选择安装1.9版本
  • PCL1.9官方没有提供友好的源,选择源码编译是最直接的
  • 读者也可以使用一键编译工具
  • https://gitee.com/subiluo/Ubuntu_16.06_PCL_1.9_install.sh

1. 安装

  • 源码可以在github上下载: PCL1.9发行版地址here
  • 当然你也可能下载不下来: 我上传的资源
  • 安装之前需要安装一堆依赖,选择你电脑里没有的安装,如下:
sudo apt-get install g++
sudo apt-get install cmake cmake-gui
sudo apt-get install doxygen
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 libvtk6-dev libvtk6.2 libvtk6.2-qt
sudo apt-get install 'libqhull*'
sudo apt-get install libusb-dev
sudo apt-get install libgtest-dev
sudo apt-get install git-core freeglut3-dev pkg-config
sudo apt-get install build-essential libxmu-dev libxi-dev
sudo apt-get install libusb-1.0-0-dev graphviz mono-complete
sudo apt-get install qt-sdk openjdk-9-jdk openjdk-9-jre
sudo apt-get install phonon-backend-gstreamer
sudo apt-get install phonon-backend-vlc
sudo apt-get install libopenni-dev libopenni2-dev
  • 解压你下载的PCL1.9源码包
cd pcl-pcl-1.9.1/
mkdir build
cd build/
cmake -DPCL_DIR=/usr/local/share/pcl-1.9 ..

这里其实就是增加cmake的一些选项,并不需要网上各种教程里所说的这种

 -DCMAKE_BUILD_TYPE=None -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON

因为默认就是Debug和Release都会编译,电脑没有gpu也不需要开,examples个人也觉得没必要,apps看需求来,剩下的你可以用cmake-gui自己选择,对于我来说,用上面的一句cmake …就可以了

  • 之后就编译吧,电脑性能好你j4,j6一直加
make -j2
  • 编译结束,你可以选择安装到系统,也可以不安装,安装目录如下
sudo make install

注意这个会默认安装到/usr/local目录下,而pcl1.7默认是在/usr/include和/usr/lib下的

2. 使用

  • Cmakelists
  • 如果你已经安装到系统目录,就把set注释掉。
cmake_minimum_required(VERSION 2.4.6)

project(test_pcl)

set(PCL_DIR "/home/usr-..-/Downloads/pcl-pcl-1.9.1/build/PCLConfig.cmake")

if(COMMAND cmake_policy)
     cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)

find_package(PCL 1.9 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries (${PROJECT_NAME}
    ${PCL_LIBRARIES}
 )

你可能感兴趣的:(Ubuntu,C++)