Linux平台编译带PCL和PDAL插件的CloudCompare

最近的综合课程设计需要用到CloudCompare这款软件处理点云数据,最开始我发现Debian的apt软件库就包含它,安装后却发现打不开.pcd格式的数据,于是需要从源码编译附带PCL插件的CloudCompare;另一方面我也想尽可能地多装点插件。操作过程中主要参考的是源码自带的BUILD说明。

一、安装PCL库

如果需要使用CloudCompare打开.pcd格式的点云数据,需要安装PCL插件,而该插件依赖系统提前安装PCL点云数据处理库。Debian系Linux相对方便一些,可以直接用apt下载PCL库:

sudo apt install libpcl-dev

二、编译安装PDAL

Debian的PDAL插件需要系统提前安装PDAL,理论上也可以直接从apt软件库安装PDAL,但是在后来编译CloudCompare的过程中总是报错找不到pdalconfig.cmake,所以我后来还是选择了从源码编译PDAL。官网的参考教程非常详细。

git clone https://github.com/PDAL/PDAL.git ~/Downloads/
cd PDAL-2.4.3-src
mkdir build && cd build
cmake-gui  # 打开cmake图形界面

source选择PDAL的源码文件夹(我这里是PDAL-2.4.3-src),build目录是刚刚新建的build的目录,然后就可以点击configure并且选择Unix Makefile(注:pdal作者推荐使用更快速的Ninja,但是我用Ninja出了点问题,所以就用Linux下cmake的默认配置,没发现区别),依次点击configure、generate之后cmake控制台窗口会输出一系列进程提示,成功的标志是结尾有如下两行提示:

Configuring done
Generating done

如果不进行变动的话大概率不会出其它问题,接着就可以make了:

make -j8
# 耐心等待构建到100%
sudo make install
# cmake 默认安装到 /usr/local,install之后build文件夹下会有一份install-manifest文件说明安装位置以方便卸载

OK!PDAL就编译完成了!

三、安装GDAL和libGeotiff

Debian最近在打造DebianGIS项目,目的是使Debian成为GIS友好的Linux发行版,目前GDAL和libGeotiff都是可以从软件仓库下载的。我之前安装过QGIS,所以这两样都已经安装了。

sudo apt install "gdal*"
sudo apt install "libgeotiff*"

四、编译安装CloudCompare并附带尽可能多的插件

编译CloudCompare的过程尽量参考Github上CloudCompare仓库的BUILD.md文件,也非常细致。

1. 安装依赖

sudo apt install libqt5svg5-dev libqt5opengl5-dev qt5-default qttools5-dev qttools5-dev-tools libqt5websockets5-dev

2. 下载源码

git clone --recursive https://github.com/cloudcompare/CloudCompare.git ~/Downloads/

3. cmake配置

经过了多次尝试,我将自己目前能装的CloudCompare插件都装上去了,cmake的配置命令如下:

cmake \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D PDAL_DIR=/usr/local/lib/cmkae/PDAL \
-D PDAL_CONFIG=/usr/local/bin/pdal-config \
-D OPTION_USE_GDAL=ON \
-D GDAL_INCLUDE_DIR=/usr/include/gdal \
-D GDAL_CONFIG=/usr/bin/gdal-config \
-D GDAL_LIBRARY=/usr/lib/libgdal.so \
-D PLUGIN_GL_QEDL=ON \
-D PLUGIN_GL_QSSAO=ON \
-D PLUGIN_IO_QADDITIONAL=ON \
-D PLUGIN_IO_QCSV_MATRIX=ON \
-D PLUGIN_IO_QDRACO=OFF \
-D PLUGIN_IO_QPDAL=ON \
-D PLUGIN_IO_QPHOTOSCAN=ON \
-D PLUGIN_IO_QRDB=OFF \
-D PLUGIN_IO_QSTEP=OFF \
-D PLUGIN_STANDARD_QANIMATION=ON \
-D QANIMATION_WITH_FFMPEG_SUPPORT=ON \
-D PLUGIN_STANDARD_QBROOM=ON \
-D PLUGIN_STANDARD_QCANUPO=ON \
-D PLUGIN_STANDARD_QCOLORIMETRIC_SEGMENTER=ON \
-D PLUGIN_STANDARD_QCOMPASS=ON \
-D PLUGIN_STANDARD_QCSF=ON \
-D PLUGIN_STANDARD_QFACETS=ON \
-D PLUGIN_STANDARD_QHPR=ON \
-D PLUGIN_STANDARD_QJSONRPC=ON \
-D PLUGIN_STANDARD_QM3C2=ON \
-D PLUGIN_STANDARD_QMPLANE=ON \
-D PLUGIN_STANDARD_QPCL=ON \
-D PLUGIN_STANDARD_QPCV=ON \
-D PLUGIN_STANDARD_QPOISSON_RECON=ON \
-D PLUGIN_STANDARD_QRANSAC_SD=ON \
-D PLUGIN_STANDARD_QSRA=ON \
-D PLUGIN_STANDARD_MASONRY_QAUTO_SEG=ON \
-D PLUGIN_STANDARD_MASONRY_QMANUAL_SEG=ON ..

4. 构建与安装

cmake --build . -j8
# build需要等待一会
sudo cmake --install .

5. 创建桌面图标

桌面图标位置可能不同,下面的代码中涉及到的路径注意甄别,仅供参考哈。

5.1. 添加图标

将如下两张图片移动到/usr/share/icons/hicolor/256x256/apps/,命名为CloudCompare.pngccViewer.png

然后刷新桌面图标缓存

sudo gtk-update-icon-cache /usr/share/icons/hicolor

5.2. 添加桌面文件

cd /usr/share/applications/
sudo vim cloudcompare.desktop
# 输入以下内容
[Desktop Entry]
Type=Application
Name=CloudCompare
Comment=3D point cloud and mesh processing software
Exec=CloudCompare
Terminal=false
Categories=Graphics;3DGraphics;Viewer;
Icon=cloudcompare.png
Keywords=3d;processing;
# Esc, 然后:wq保存退出

sudo vim ccViewer.desktop
# 输入以下内容
[Desktop Entry]
Type=Application
Name=CloudCompare Viewer
Comment=3D point cloud and mesh processing software
Exec=ccViewer
Terminal=false
Categories=Graphics;3DGraphics;Viewer;
Icon=ccViewer.png
Keywords=3d;viewer;
# Esc, 然后:wq保存退出, 注销后就可以看见图标了

五、遇到的问题与参考材料

1. 找不到qt5-default

影响不是特别大,参考这篇博客

2. 编译好的CloudCompare仍然打不开LAS文件或者LAZ文件

在CloudCompare启动过程中会有提示,假如仍然打不开las文件,可能是PDAL插件出问题了,会在CloudCompare的控制台输出日志

libQPDAL_IO_PLUGIN don't seem to be a valid plugin (can not load shared library lidpdal_base.so.14)

这个是因为CloudCompare在之前编译时没有找到pdal链接库的位置,如果在cmake配置时按照前面的说明加入了-D PDAL_DIR=/usr/local/lib/cmkae/PDAL -D PDAL_CONFIG=/usr/local/bin/pdal-config好像可以解决该问题,但是我不确定这是否是主要原因。也有一些资料说需要将/usr/local/lib添加到系统路径。

3. 参考资料汇总

  1. (https://github.com/CloudCompare/CloudCompare/blob/master/BUILD.md)
  2. (https://pdal.io/en/stable/development/compilation/unix.html)
  3. (https://github.com/CloudCompare/CloudCompare/issues/1382)
  4. 路过图床提供在线图片支持
posted @ 2022-10-05 18:00  北极洲的小卖部  阅读(1116)  评论(0)    收藏  举报