Ubuntu16.04安装PCL1.8

  1. PCL安装步骤
    参照网址:http://pointclouds.org/downloads/linux.html
    官方的安装教程:
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all

由此即可安装编译好的点云库(PCL-1.7),附带安装了VTK-6.2.0等依赖库。
上面那种安装方法会出现无法定位到libpcl-all package的问题,因此最最保守的是要采用源码安装方式。

     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
     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

接着从github上把PCL源码clone下来

 git clone https://github.com/PointCloudLibrary/pcl.git

下载时速度非常慢
下载的版本为最新版 pcl 1.9

下载PCL1.8.1 源码: https://pan.baidu.com/s/1DYjfOZULH_XI3qKazaHPHQ
感谢博主:https://blog.csdn.net/qq_25738937/article/details/80939651

 cd pcl-pcl-1.8.1
 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

常见问题
instant error log:


— The imported target “vtkRenderingPythonTkWidgets” references the file
“/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so”
but this file does not exist. Possible reasons include:

  • The file was deleted, renamed, or moved to another location.
  • An install or uninstall procedure did not complete successfully.
  • The installation package was faulty and contained
    “/usr/lib/cmake/vtk-6.2/VTKTargets.cmake”
    but not all the files it references.

check if this file is missing or not

ls -l  /usr/lib/python2.7/dist-packages/vtk/libvtkRendering*

python-vtk6 (VTK6.2) is installed, and installed file list:

/usr/lib/python2.7/dist-packages/vtk/libvtkRenderingPythonTkWidgets.x86_64-linux-gnu.so

sudo ln -s /usr/lib/python2.7/dist-packages/vtk/libvtkRenderingPythonTkWidgets.x86_64-linux-gnu-6.2.so /usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so

#this is the only file needs symbolic link to /usr/lib/x86_64-linux-gnu/

then, error is solved

通过以下命令可以快速安装pcl1.7.1,但是不推荐,据说因为在ubuntu16.04中,由于vtk版本原因造成一些bug,这里不想深究,所以,打算自己编译。至于ubuntu 14.04没用过(可以试试下面指令)。

复制代码
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update

for ubuntu 16.04

sudo apt-get install libpcl-dev

for ubuntu 14.04

#sudo apt-get install libpcl-all

以上方法可能出现的问题:
1、error: 有几个软件无法下载, 要不sudo apt-get update 或-- fix-missing 试一试?

解决: sudo apt-get install libpcl-dev --fix-missing(至此,一般能够顺利安装)

2、error: vtkproj4.so丢失

解决:对于编译好的点云库(PCL-1.7),附带安装了VTK-6.2.0,以及各种杂七杂八的依赖库。安装后的编译过程中出现了库文件vtkproj4.so丢失的问题。
这个问题与我另一篇寻找缺失库文件的文章不同,这是VTK-6.2.0 (build10)中的BUG,而原作者已经在build11中修正了该问题。
这个问题有一个非常简单的解决方法:在/usr/lib文件夹下,我发现了vtk5.10的相关库文件,考虑到5.10与6.2版本间的差距应该不大,我直接进行了软链接……
sudo ln -s /usr/lib/libvtkproj4.so.5.10 /usr/lib/libvtkproj4.so

复制代码
1、卸载有问题的PCL1.7(vtk bug等等,例如:不能显示深度图)

sudo rm -r build
sudo rm -r /usr/include/pcl-1.7 /usr/share/pcl /usr/bin/pcl* /usr/lib/libpcl*

执行上述命令, 上述四个目录中,可能会找不到某些目录。可以自己去 usr 目录下搜索 关键字 pcl 或者 libpcl。本人在目录 /usr/libx86_64-linux-gnu 下找到 相关libpcl*文件,删除即可,删除命令同上。

2、编译&&安装PCL1.8.1

pcl的可视化库版本关系【你要是不知道其他版本的对应的vtk版本,推荐可以去下载pcl源码,去 3rdparty文件夹路径下查询vtk版本】:

  1. pcl-1.7.2 vtk-5.10.1 / vtk-6.2.0

  2. pcl-1.8.1 vtk-7.1.1

  3. pcl-1.9.1 vtk-8.2.0

这让人想起非线性优化库 G2O 安装时,不同版本的G2O也需要不同版本的 libqglviewer类似。本文安装PCL1.8.1,所以选择VTK-7.1.1。在此之前先执行以下命令安装 PCL底层依赖(逐行执行)。

PCL依赖的库很多,例如:QHull(查找凸包算法)、VTK(可视化)、Flann(最近邻搜索算法)、Eigen、Boost、OpenNI2(这个库可以提供当年一些供应商提供的设备的驱动,例如:Kinect2.0…为什么是当年? 首先OpenNI2 在N年前已经停止维护,PCL提供接口的一些设备如:深度相机也已经停产,所以…鸡肋);PCL本身提供的三维视觉算法不算很多,顺便:PCL这个库体验跟opencv等开源库比起来…,或许以后会去学习CloudCompare开源算法。

复制代码

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 libboost-all-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 libopenni-dev libopenni2-dev

sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev

sudo apt-get install libxmu-dev libxmuu-dev

sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev

复制代码
  注意:这里 libopenni2-dev 也许会显示无法安装,换一个软件源就行了,我是换到aliyun了。

VTK7.1.1下载链接:https://www.jianshu.com/go-wild?ac=2&url=https%3A%2F%2Fwww.vtk.org%2Ffiles%2Frelease%2F7.1%2FVTK-7.1.1.zip

PCL1.8.1下载链接:https://codeload.github.com/PointCloudLibrary/pcl/zip/pcl-1.8.1

note: in the ubuntu18.04,we can not find the libflann1.8!!! , but i have found the “libflann1.9"by using the conmad"apt-cache search libflann”, and just install it, ojbk!!!

QT5
(1)首先在https://www.qt.io/download-open-source/#section-2中通过邮箱注册下载得到 qt-opensource-linux-x64-5.2.1.run
(2)然后在qt-opensource-linux-x64-5.2.1.run所在的目录下打开终端,执行下面两行代码:

sudo chmod +x qt-opensource-linux-x64-5.8.0.run
sudo ./qt-opensource-linux-x64-5.8.0.run

Ubuntu16.04安装PCL1.8_第1张图片
Ubuntu16.04安装PCL1.8_第2张图片






解压,安装VTK

复制代码

cd VTK-7.1.1

mkdir build && cd build

cmake ..

cmake-gui      ###操作见下面文字###

make

sudo make install

复制代码

勾选“VTK_GROUP_QT”,改“VTK_QT_VERSION” = 5,将CMAKE_BUILD_TYPE 改为Release(图中还没改,懒得换图,图也是盗的,见文末链接),点击Configure,generate【最后一次config应该是所有红色部分消失】

很不幸,在虚拟机中用cmake-gui配置Qt版本时候报错(这跟虚拟机没什么关系,可能原因是Qt版本),如下图:

这里起初的想法是,更换一个Qt版本?太麻烦。既然缺少某个Qt库,可以使用如下指令搜索:

复制代码

这条指令价值500块

apt-cache search Qt5X11Extras

显示结果如下

libqt5x11extras5 - Qt 5 X11 extras
libqt5x11extras5-dev - Qt 5 X11 extras development files

这里安装其中一个库

sudo apt-get install libqt5x11extras5-dev
复制代码
  接着对于VTK,我们关闭并重新打开cmake-gui,重新生成,顺利生成, 别忘记sudo make install 。

还可能在cmake-gui的时候,遇到无法找到 Qt5_DIR-NOTFOUND 。由于没有安装,所以这里要提前安装好Qt5。我这里选择Qt5.9.9,装完以后,还是不能自动检测到Qt路径,手动添加吧,如下图:

点击configure,直到红色消失。

接着解压、编译、安装PCL

复制代码
cd pcl-1.8.1

mkdir build && cd build

cmake …

cmake-gui ###操作见下面文字###

make -j4 ###编译要好久,别开太多东西,小心卡机###

sudo make install
复制代码
检查Qt5的路径,检查vtk版本,选择openni2,点击Configure,generate

3、注意

在安装PCL的时候,看清楚…,不要直接用命令行 cmake… 这样会直接默认生成releasse,我们这在cmake-gui中手动设置,如图,

debug和release版本各有自己的优势和缺陷。 debug版本为了追求更全面的调试信息而放弃了速度; release版本为了追求性能优化而抛弃了调试信息。如果用户既需要调试代码,又无奈于debug版本的速度,那么你便可以开始考虑RelWithDebInfo这个版本了。顾名思义,从这个模式的名称来看,它是一种含有调试信息的Release版本。那么它相当于是结合了Debug和Release版本的优点的一个版本。以下是Stackoverflow上面的关于比较Debug和RelWithDebInfo版本区别的描述:

http://stackoverflow.com/questions/1239845/build-mode-relwithdebinfo

本人在ubuntu下用的IDE为Clion,我们这里重新编译并安装好PCL之后,在clion->File->Setting->ToolChains 中首先将调试器改为 GDB(这个很关键,这样让本来就很卡的Clion在调试的时候,速度变换了许多,)继续再将CMake的build type改为RelWithDebInfo,编译速度也加快了。

以上…, 否则使用CLion调试PCL中的的 pcl::PointXYZ 类型变量,很痛苦。

小结:

1、上面安装VTK可视化库,记得改为Release,

2、安装PCL的时候,如果不知道命令行怎么设置为:按RelWithDebInfo方式编译,可以用cmake-gui设置为这种方式,

3、CLion将工具链的调试器设置为GDB,将CMake的生成类型设置为RelWithDebInfo(缓解卡B带来的痛苦…)

4、由于从PCL1.7.1更换PCL1.8.1版本,之前基于CLion构建的工程全部作废,新建工程再写吧(理论上将 相对目录下的生成的中间文件手动rm 掉是可以的,懒得折腾,索性重建工程)

参考链接:https://www.jianshu.com/p/548234bb88fc

              https://www.cnblogs.com/zhuxuekui/p/9663335.html

In the QtCreator5.9.9, when i complier the pcl demo by qmake, “error while loading shared libraries: libpcl_common.so.1.8”, i do not why, maybe… i have deleted the source directory of “PCL1.8.1” and “VTK”; the falowing is the .pro file of Qt

1 INCLUDEPATH += /usr/local/include/pcl-1.8
2 LIBS += /usr/local/lib/libpcl_*.so
nice, i fuck the problem by do"sudo ldconfig ", please remember it!!!

// opencv 待具体

pkg-config opencv --modversion
pkg-config opencv --libs

// 库的卸载参考: https://www.cnblogs.com/kinwing/p/11829546.html

// error: … If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function ‘cvShowImage’

// solution: https://stackoverflow.com/questions/28776053/opencv-gtk2-x-error
// <1> install libgtk2.0-dev
// <2> rebuild opencv4.1.2 with VPN, you have to know how to set cmake options like these:

cmake
-D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D WITH_TBB=ON
-D BUILD_NEW_PYTHON_SUPPORT=ON ## no occur
-D WITH_V4L=ON
-D INSTALL_C_EXAMPLES=ON
-D INSTALL_PYTHON_EXAMPLES=ON
-D BUILD_EXAMPLES=ON
-D WITH_QT=ON
-D WITH_GTK=ON
-D WITH_OPENGL=ON …

https://www.cnblogs.com/winslam/p/12074432.html
https://pinyin.sogou.com/linux/help.php

先安装VTK后编译PCL
之前按照https://blog.csdn.net/dantengc/article/details/78446600的方法,跑demo的时候出现了找不到visualization头文件的错误,后来查找资料,可能是VTK的问题。
先安装除VTK的依赖

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 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
安装VTK
首先安装依赖项X11,OpenGL,CMake-gui
#x11

sudo apt-get install libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev libxmuu-dev
1
#OpenGL

sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev
1
#cmake

sudo apt-get install cmake cmake-gui
1
下载vtk源码,Download | VTK,我选择了VTK-7.1.1.tar.gz,下载完成后解压缩到你的文件安装目录。

打开cmake-gui界面
在终端键入cmake-gui
在cmake-gui界面进行如下操作:
1、设置“where is the source code:”的路径为文件夹VTK-7.1.1所在路径,如这里是/home/VTK-7.1.1;
2、设置“where to build the binaries:”的路径为/home/VTK-7.1.1/build,即在/home/VTK-7.1.1的路径下新建文件夹build;
3、点击“Configure”,在弹出对话框中选择“Current Generator”为“Unix MakeFiles”,完成之后会提示“Configuring done”;
4、勾选“VTK_GROUP_Qt”选项,再次点击“Configure”按钮,若提示警告信息,需要设置Qt安装路径,则设置路径后,再次点击“Configure”按钮
5、提示“Configure done”,点击“Generate”按钮,在vtk_build会生成工程文件,完成之后会提示“Generating done”;
在终端cd到vtk目录下的build文件夹,若没有则在终端使用$mkdir build && cd build命令来创建
键入如下命令来编译安装:

你可能感兴趣的:(Ubuntu16.04安装PCL1.8)