Bootstrap

pcl+vtk(二)Ubuntu18.04下载安装基于使用QT的pcl1.13+vtk8.2,以及卸载

一、QVTKWidget、QVTKWidget2、QVTKOpenGLWidget、QVTKOpenGLNativeWidget 区别

1.Qt版本

Qt5.4以前版本:QVTKWidget2/QVTKWidget。

Qt5.4以后版本:QVTKOpenGLWidget/QVTKOpenGLWidget。

2.VTK版本(Qt版本为5.4之后)

在VTK8.2以前的版本:QVTKOpenGLWidget;
在VTK8.2及以后的版本里:QVTKOpenGLNativeWidget;

QVTKWidget:目前了解到的只可显示点云,没有在网上找到显示模型的例子。

QVTKOpenGLNativeWidget:既可显示点云又可显示模型。

推荐直接下载pcl1.13+vtk8.2,直接使用QVTKOpenGLNativeWidget,不要像我之前一样看网上大多是vtk7.1+pcl1.9就下载了这个,然后不满足需求了又卸载重新下载高版本。

二、安装qt

利用命令安装ubuntu18.04默认支持的qt版本5.9.5,如果需要更高版本,直接去QT官网下载安装包即可。

依赖

sudo apt install build-essential

sudo apt install cmake

sudo apt install qt5-default qtbase5-dev

sudo apt install qtcreator

IDE 文档

sudo apt install qt5tools-dev qt5tools-dev-tools qt5tools-doc qt5tools-examples 

版本管理工具

sudo apt install qtchooser

二、安装vtk8.2

官网地址:Download | VTK

下载8.2版本源码

解压之后进入到该文件夹下,

然后按照以下步骤执行:

其中/usr/lib/qt5/bin/qmake为QT的qmake的安装目录,/usr/lib/x86_64-linux-gnu/cmake为QT中指示CMake在查找包和项目所需库文件时的路径,我的是用系统命令安装的QT,所以目录在系统目录下。如果是下载安装包安装QT可以看自己放置的目录是什么(我看网上大多是qmake在/opt/Qt5.12.9/5.12.9/gcc_64/bin/qmake,cmake在/opt/Qt5.12.9/5.12.9/gcc_64/lib/cmake)。为确保正确在执行之前去相应目录下查看以下是否有qmake和cmake。

mkdir release
cd release
cmake -DVTK_QT_VERSION:STRING=5 \
              -DQT_QMAKE_EXECUTABLE:PATH=/usr/lib/qt5/bin/qmake \
              -DVTK_Group_Qt:BOOL=ON \
              -DCMAKE_PREFIX_PATH:PATH=/usr/lib/x86_64-linux-gnu/cmake  \
              -DCMAKE_BUILD_TYPE=RELEASE \
              -DBUILD_SHARED_LIBS:BOOL=ON ..

make
sudo make install

注意:一定要加cmake后的配置项,不加的话不会生成 libQVTKWidgetPlugin.so库。( libQVTKWidgetPlugin.so库只用于在QtCreator设计界面的可拖拽生成控件处添加该控件)

安装完成之后将QVTKWidget添加到QtCreator ,执行下面命令查找路径

sudo find / -name libQVTKWidgetPlugin.so

 可以看到目录为:

/usr/local/plugins/designer/libQVTKWidgetPlugin.so

将libQVTKWidgetPlugin.so复制到QT的相关库路径下。

由于我是用命令直接下载的QT,移动到的目录如下:

/usr/lib/x86_64-linux-gnu/qt5/plugins/designer/

/usr/lib/x86_64-linux-gnu/qtcreator/plugins/

如果是下载安装包安装的QT可以看自己放置的目录是什么,网上大多是:

/opt/Qt5.12.9/5.12.9/gcc_64/plugins/designer/
/opt/Qt5.12.9/Tools/QtCreator/lib/Qt/plugins/designer/

以上就安装完成了。

安装过程中遇到的问题

问题1

vtk CMake Error at Rendering/OpenGL2/CMakeLists.txt:154 (message):   X11_Xt_LIB could not be found.  Required for VTK X lib.

解决:

sudo apt-get install libxt-dev

问题2

CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:26 (find_package):
  Could not find a package configuration file provided by "Qt5X11Extras" with
  any of the following names:

    Qt5X11ExtrasConfig.cmake
    qt5x11extras-config.cmake

  Add the installation prefix of "Qt5X11Extras" to CMAKE_PREFIX_PATH or set
  "Qt5X11Extras_DIR" to a directory containing one of the above files.  If
  "Qt5X11Extras" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  VTK/GUISupport/Qt/CMakeLists.txt:69 (find_package)

解决:

sudo apt install libqt5x11extras5-dev

 问题3

CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:26 (find_package): Could not find a package configuration file provided by “Qt5UiPlugin” with any of the following names:

Qt5UiPluginConfig.cmake
qt5uiplugin-config.cmake
Add the installation prefix of “Qt5UiPlugin” to CMAKE_PREFIX_PATH or set “Qt5UiPlugin_DIR” to a directory containing one of the above files. If “Qt5UiPlugin” provides a separate development package or SDK, be sure it has been installed.

解决:

sudo apt-get install qttools5-dev

问题4

CMake Error at CMakeLists.txt:156 (export):
  export EXPORT or TARGETS specifier missing.

解决:

把这个地方调整如下:

if (_vtk_compiletools_targets)
  list(REMOVE_DUPLICATES _vtk_compiletools_targets)
  export(TARGETS ${_vtk_compiletools_targets}
    FILE ${VTK_BINARY_DIR}/VTKCompileToolsConfig.cmake)
  add_dependencies(vtkCompileTools ${_vtk_compiletools_targets})
endif()
也就是把156,157行挪到endif中,保存后再来Configure。

三、安装pcl1.13

先安装依赖

sudo apt-get update
sudo apt-get install git build-essential
sudo apt-get install cmake cmake-gui
sudo apt-get install libflann1.9 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev

  源码地址:https://github.com/PointCloudLibrary/pcl.git

去git上直接下载1.13.1版本源码,解压之后进入该目录下。

执行下面命令

mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=None \
      -DCMAKE_INSTALL_PREFIX=/usr/local \
      -DBUILD_GPU=ON \
      -DBUILD_apps=ON \
      -DBUILD_examples=ON ..
make
sudo make install

以上就安装完成了。到此vtk和pcl就都安装完成了。

安装成功验证:

在pcl目录下打开终端,执行命令:

pcl_viewer 点云文件名

注意:运行该命令时可能会报下面错误

pcl_viewer: error while loading shared libraries: libvtksys-8.2.so.1: cannot open shared object file: No such file or directory

原因和解决办法可以查看下面链接

error while loading shared libraries:-CSDN博客

四、卸载vtk

1.利用sudo apt-get install libvtk7.1-qt libvtk7.1 libvtk7-qt-dev安装的依赖

直接执行命令即可

sudo apt-get remove libvtk7*

2.删除库和头文件

在计算机中查找vtk安装的内容及相应位置,执行命令删除。

一定要谨慎谨慎再谨慎!!!!确定好之后在删除,sudo命令不可撤回。

sudo rm -rf /usr/local/include/vtk-8.2/

sudo rm -f /usr/local/lib/libvtk*-8.2.*

五、卸载pcl

在计算机中查找pcl安装的内容及相应位置,然后直接执行命令。

直接在编译的文件夹下(我的是release)执行卸载命令

sudo make uninstall

一定要谨慎谨慎再谨慎!!!!确定好之后在删除,sudo命令不可撤回。

sudo rm -rf /usr/local/include/pcl-1.9/
sudo rm -rf /usr/local/share/pcl-1.9/
sudo rm -rf /usr/local/bin/pcl*
sudo rm -rf /usr/local/lib/libpcl*

;