需求

在window11系统上使用cmake编译CloudCompare,且支持读取.pcd.las文件格式的点云,并使用VS2022+QT进行二次开发,下面整理并记录了博主编译的过程,供大家学习参考。【更新时间2023-10-8】

编译准备工作

本次编译需要准备CloudCompare源码,VS2022、Cmake、Qt5.15.2,PCL1.12.0、PDAL。
在这里插入图片描述

以上安装包和源码博主均已打包,也可根据版本需求在官网下载对应安装包。如使用我提供的安装包,请前往下载[文件大小802.2M],并忽略下列下载安装包过程。

1.CloudCompare

CloudCompare是一个开源三维点云(网格)编辑和处理软件,源码可在CloundCompare github开源地址获取,推荐在git bash中使用下面指令克隆CloudCompare仓库,防止丢失文件。

git clone -b version_2.12.2 --recursive https://github.com/cloudcompare/CloudCompare.git

其中-b参数为仓库版本,--recursive保证子模块的下载,由于下面我们还要安装PCLPDAL,为防止兼容错误,这里我们统一选择CloudCompare2.12.2,过低版本或过高版本出现编译问题本博客不予以解释。

2.VS2022

Visual Studio2022是一款强大的IDE,我们使用它来管理我们的工程文件。

  • 下载Visual Studio 2022安装包
  • 安装VS2022教程,按照此教程做完步骤1.2即可

3.cmake

CMake是一个跨平台的编译(Build)工具,可以用简单的语句来描述所有平台的编译过程,我们使用它来编译CloudCompare源码。

  • 下载cmake安装包
  • cmake安装教程

4.QT

QT是CloundCompare的一个主要依赖库,提供了界面程序的支持。这里推荐在线安装方式,下载windows在线安装工具,运行installer,若无账号登录可注册后再登陆,到了选择组件时,注意CloudCompare对QT的版本要求为5.12 <= Qt < 6.0,这里我安装的是QT5.15.2,组件选择如下图,一定要选择一个带MSVC的选项,其他可根据需求选择。
在这里插入图片描述
上述组件安装过程大约10分钟左右,占用空间5.7G左右,安装结束后将QT的bin目录加入环境变量,比如我这里为C:\Qt\5.15.2\msvc2019_64\bin(若电脑安装过Anaconda,记得将QT的环境变量置于Anaconda上方)。
在这里插入图片描述

5.PCL(若无.pcd格式文件读取需求可跳过此节)

点云库PCL英文全称为Point Cloud Library,它是一个独立的、大规模的、开放的项目,用于2D和3D图像和点云处理,本项目安装其以支持.pcd格式文件的读取。
PCL各版本下载地址,这里我们选择1.12.0版本,下载PCL相关安装文件(一个.exe文件和.zip文件)
在这里插入图片描述

PCL安装过程可以参考此教程,可以先做完此教程第一步,VS studio相关配置可后续完成。
针对此教程的几点补充和提醒:
1.选择PCL安装位置时,最好删除PCL 1.12.0中间的空格,即末端为PCL1.12.0,下图为我安装结束的PCL目录:
在这里插入图片描述

2.安装结束后加入用户环境变量,下面是我加入的PCL相关环境变量。
在这里插入图片描述

6.PDAL(若无.las格式文件读取可跳过此节)

PDAL是一个点云数据处理的C/C++开源库,用于点云数据的转换和处理,该库中许多工具的重点和发展都起源于激光雷达点云数据的处理,但也不限于激光雷达数据,本项目安装其以支持.las格式文件的读取。推荐使用OSG安装,可参考此教程,可先做到此教程的配置环境变量及之前部分。
针对此教程的几点补充和提醒:
1.将PDAL安装位置设置为*/PCL1.20.0/3rdParty/PDAL,下图为安装结束的PDAL目录:
在这里插入图片描述
2.安装时如下载过慢(几十kb/s),科学上网可以加速
2.安装结束后加入系统环境变量,下图为我加入的PDAL环境变量(与QT类似,若电脑安装过Anaconda,请将PDAL的环境变量置于Anaconda上方。
在这里插入图片描述

开始编译

至此,我们已完成了CloundCompare2.12.2源码的下载以及VS,cmake,QT5.12.2,PCL1.12.0(option),PDAL(option)的安装,在编译之前,推荐检查环境变量是否均配置正确,然后重启电脑,使环境变量生效,再进行下列编译过程。

1.建立如下目录结构

|-CloudCompare(总目录)
	|-CloudCompare-2.12.2(存放源码)
	|-CloudCompare-2.12.2-install(空目录,用于存放后续输出的可执行文件)
	|-CloudCompare-2.12.2-build(空目录,用于存放后续的编译后的项目文件)

在这里插入图片描述

2.打开cmak gui程序,Where is the souce codeWhere to build选择我们创建的文件夹,勾选Grouped和Advanced,点击Configure,选择x64,点击Finish。

在这里插入图片描述

3.首次编译结果如下,红**域存在未定义的参数,下面我们进行补充
在这里插入图片描述
a) 填入QT Path,我这里为C:/Qt/5.15.2/msvc2019_64,注意斜杠不要错了。
在这里插入图片描述
b) 修改CMAKE中的CMKAKE_INSTALL_PREFIX*/CloudCompare-2.12.2-install,使最后输出可执行文件到我们创建的install文件夹中。
在这里插入图片描述
c) 勾选PLUGIN中的QPDALQPCL,再次点击Configure(若无.pcd.las格式读取需求可跳过)
在这里插入图片描述
d) Configure后仍有红**域,打开Ugrouped_Entries,检查PDAL路径是否加载,若未加载,手动选择为*/PDAL(PDAL安装目录),再次点击Configure后无红**域,如果还有红**域,请检查准备工作的PCL和PDAL版本是否和博主一致,环境变量是否添加并且生效。在这里插入图片描述

4.点击Generate后,打开build文件夹中生成的CloudCompareProjects.sln
在这里插入图片描述
5.将VS调整为Release x64模式,右键ALL_BUILD点击生成,此过程大约几分钟。
在这里插入图片描述
成功生成结果如下(若失败,大概率为依赖库版本问题,可查看错误列表定位出错的输出)
在这里插入图片描述
7.右键选择INSTALL项目,点击生成
在这里插入图片描述
8.生成成功后打开install文件夹找到CloudCompare.exe并双击运行
在这里插入图片描述
9.检查文件格式选项中是否有.pcd和.las读取功能
在这里插入图片描述
10.成功读取点云文件
a).pcd文件
在这里插入图片描述
b).las文件
在这里插入图片描述
至此整个编译过程完成。

(更新)点云重建相关依赖安装

CGAL用于支持得劳内三角剖分功能,网格化,无需编译,直接下载相关文件即可

  • 下载CGAL5.2.1和CGAL依赖的GMP和MPFR
    在这里插入图片描述
    解压CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip, 将gmp下的所有文件复制到CGAL-5.2.1/auxiliary/gmp路径下
    在这里插入图片描述

  • 勾选CCCORELIN中的USE_CGAL
    在这里插入图片描述

  • 补充红色选项的路径,如CGAL的路径,GMP的路径和MPFR的路径,一般补全CGAL_DIR后其他会自动补全,没有补全需要手动添加。
    在这里插入图片描述

  • 勾选PLUGIN中的QPOISSON RECON插件
    在这里插入图片描述

  • Configure和Generate没有问题后重新执行开始编译-4后续步骤

【参考博客】
1.[Win10+VS2019]CloudCompare2.12编译读取pcd,las等格式
2.CloudCompare:VS2017 + Qt5.9 + CMake3.14 编译CloudCompare2.10.2
3.CloudCompare官方编译指导
4.Visual Studio 2022安装与使用教程,一次教会你
5.Windows下CMake安装教程
6.VisualStudio如何配置PCL点云库?
7.最具体和最简单的PDAL库配置及在VS2019上测试

【二次开发推荐博客】
1.CloudCompare如何进行二次开发的第一步:编译?
2.VS安装 QT插件
3.CloudCompare二次开发之如何配置PCL点云库?
4.CloudCompare二次开发之如何通过PCL进行点云滤波?