Windows版
直接下载all-in-one安装即可
Ubuntu版
1. 通过ppa安装
add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
apt-get update
apt-get install libpcl-all
2. 源码安装
git clone https://github.com/PointCloudLibrary/pcl.git
apt-get install cmake g++ libboost1.58-all-dev libeigen3-dev libflann-dev python libusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz libpng12-dev libgtest-dev libxmu-dev libxi-dev libpcap-dev libqhull-dev libvtk5-qt4-dev python-vtk libvtk-java
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=None -D BUILD_GPU=ON -D BUILD_apps=ON -D BUILD_examples=ON -DCMAKE_INSTALL_PREFIX=/home/opt/flann/1.8.4 ..
make -j8
make install
源码安装(CentOS 等系列)
各个库版本比较多,建议建立一个~/opt目录来安装库,每个库下面建立不同的版本号来进行管理。如下所示
.
├── boost
│ └── 1.63.0
├── cmake
│ └── 3.11.0
├── eigen
│ └── 3.3.4
├── flann
│ └── 1.8.4
├── jsoncpp
│ └── 0.5.0
├── pcl
│ ├── 1.8.1
│ └── 1.8.2
└── scons
└── 2.5.1
1. 安装eigen
eigen是header-only lib,只需要下载即可使用
地址:Eigen
2. 安装boost
cd ~/packages
outnet wget https://sourceforge.net/projects/boost/files/boost/1.63.0/boost_1_63_0.tar.gz --no-check-certificate
tar -xzvf boost_1_63_0.tar.gz
cd boost_1_63_0
# 编译安装
./bootstrap.sh --prefix=${HOME}/opt/boost/1.63.0
./b2 install
3. 安装flann
git clone https://github.com/mariusmuja/flann.git
cd flann
mkdir build
cd build
mkdir -p /home/frank/opt/flann/1.8.4
cmake -DCMAKE_INSTALL_PREFIX=/home/opt/flann/1.8.4 ..
make -j8
make install
4. 安装pcl
安装好flann和eigen可以安装pcl,下载pcl源码 官网
mkdir build
cmake -DCMAKE_INSTALL_PREFIX=/home/opt/pcl/1.8.2 ..
应该会找不到一些依赖库,可以调整pcl的编译选项
ccmake ..
选好eigen和flann的路径,同时关闭不需要用到的PCL的开关,如果需要其他库,例如VTK,可以自行安装。
make -j8
如果报boost相关的错,那么说明程序没有找到新装的boost,依然在使用系统自带的boost。
这里直接手动修改boost的相关配置,在文件cmake/pcl_find_boost.cmake
中进行修改
将其中部分修改如下,直接写死include和lib的路径
if(Boost_FOUND)
set(BOOST_FOUND TRUE)
# Obtain diagnostic information about Boost's automatic linking outputted
# during compilation time.
SET(Boost_LIB_DIAGNOSTIC_DEFINITIONS,".")
SET(Boost_INCLUDE_DIRS "/home/vis/opt/boost/1.63.0/include/")
SET(Boost_LIBRARY_DIRS "/home/vis/opt/boost/1.63.0/lib/")
add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})
endif(Boost_FOUND)
然后重新make -j8 && make install
即可