参考教程:Ubuntu18.04安装PCL(详细教程)_一盆柠檬的博客-CSDN博客
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.9 libflann-dev
sudo apt-get install libeigen3-dev 这个需要自己下载正确版本安装
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk7.1-qt
sudo apt-get install libvtk7.1
sudo apt-get install libvtk7-qt-dev(按照错误提示一步一步安装所需要的东西)
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 openjdk-8-jdk openjdk-8-jre
安装依赖过程中,有些会提示会要求你卸载ros,一定要要清楚了!
2.下载PCL包
git 下载:
git clone https://github.com/PointCloudLibrary/pcl.git
官网下载:
GitHub - PointCloudLibrary/pcl: Point Cloud Library (PCL)
3.编译(出坑最多的地方)
cd pcl-master
mkdir release
cd release
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
1)CUDA编译问题
Tell CMake where to find the compiler by setting either the environment variable "CUDACXX" or the CMake cache entry CMAKE_CUDA_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH.
此时报错表示无法找到CUDA的编译器的路径,因此添加路径即可:
export PATH=/usr/local/cuda/bin:$PATH
2)make报错
如果你在make过程中出现了一下错误:
[ 23%] Linking CXX executable ../../bin/pcl_openni_pcd_recorder
CMakeFiles/pcl_openni_pcd_recorder.dir/openni_pcd_recorder.cpp.o:在函数‘boost::date_time::month_formatter<boost::gregorian::greg_month, boost::date_time::iso_format<char>, char>::format_month(boost::gregorian::greg_month const&, std::ostream&)’中:openni_pcd_recorder.cpp:(.text._ZN5boost9date_time15month_formatterINS_9gregorian10greg_monthENS0_10iso_formatIcEEcE12format_monthERKS3_RSo[_ZN5boost9date_time15month_formatterINS_9gregorian10greg_monthENS0_10iso_formatIcEEcE12format_monthERKS3_RSo]+0x31):对‘boost::gregorian::greg_month::as_short_string() const’未定义的引用
openni_pcd_recorder.cpp(.text._ZN5boost9date_time15month_formatterINS_9gregorian10greg_monthENS0_10iso_formatIcEEcE12format_monthERKS3_RSo[_ZN5boost9date_time15month_formatterINS_9gregorian10greg_monthENS0_10iso_formatIcEEcE12format_monthERKS3_RSo]+0x54):对‘boost::gregorian::greg_month::as_long_string() const’未定义的引用collect2: error: ld returned 1 exit status
io/tools/CMakeFiles/pcl_openni_pcd_recorder.dir/build.make:283: recipe for target 'bin/pcl_openni_pcd_recorder' failed
make[2]: *** [bin/pcl_openni_pcd_recorder] Error 1
CMakeFiles/Makefile2:799: recipe for target 'io/tools/CMakeFiles/pcl_openni_pcd_recorder.dir/all' failed
make[1]: *** [io/tools/CMakeFiles/pcl_openni_pcd_recorder.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
那么可以尝试该方法:
解决方法参考链接:
PCL Build Error: undefined reference to boost date_time library · Issue #4995 · PointCloudLibrary/pcl · GitHub将之前解压出来的pcl-master包全部删除,再重新解压,重新进行编译:
在上述编译基础上修改步骤:
将-DCMAKE_BUILD_TYPE=None的None改为Release即:
cd pcl-master
mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON-DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr ..
make -j8
sudo make install
至此,PCL库安装完成。
4.验证
cd pcl-master/test
pcl_viewer car6.pcd
至此,PCL库安装完成,开始科研吧~