CloudCompare 2.13+ 的编译

CloudCompare 2.13+ 的编译

1. 基本依赖

CloudCompare 的构建需要 CMake

CloudCompare 的主要依赖是 Qt。CloudCompare 2.13+ 需要 5.12 <= Qt < 6.0。

  • 在 Windows 上建议使用 Qt 官网 的安装程序。
  • 在 macOS 上,您也可以使用 Qt 官网的安装程序,或者使用 Homebrew。
  • 在 Linux 上,建议使用您的发行版的软件包管理器:

Debian/ubuntu 包名:

libqt5svg5-dev libqt5opengl5-dev qt5-default qttools5-dev qttools5-dev-tools libqt5websockets5-dev

2. 克隆

克隆 CloudCompare 的命令是:

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

--recursive 很重要,因为 CloudCompare 使用 Git 的子模块系统来 ‘嵌入’ 外部库或插件。

3. CMake 配置

当进行 CloudCompare 的基本构建时,唯一需要的 CMake 参数是 CMAKE_PREFIX_PATH,用于告诉 CMake 在哪里找到您的 Qt 安装。

这只在 WindowsmacOS 上需要,因为在 Linux 上,Qt 安装在 CMake 将会找到的标准位置上。

您也可以使用 CMAKE_INSTALL_PREFIX 来定制 CloudCompare 将被安装的路径。

如果您使用 CMake-GUI,选项是一样的,您只需在 GUI 中输入值。

示例:

# Windows
mkdir build & cd build
cmake -DCMAKE_PREFIX_PATH=C:\Qt\5.15.2\msvc2019_64 ..

# macOS
mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=/usr/local/opt/qt@5 ..

# Linux
mkdir build && cd build
cmake ..

您可以随时查看 CloudCompare 在 GitHub 的 CI 上是如何构建的。

4. 构建

# 仍在构建文件夹中
cmake --build .

5. 安装

# 仍在构建文件夹中
cmake --install .

可选功能和插件

CloudCompare 有一些可选功能和插件,默认情况下不会构建它们。
下面是这些选项/插件的列表。要向 CMake 添加一个选项,使用 -DMY_OPTION=ON 语法。
例如,要构建 qEDL 插件,请在配置步骤中添加 -DPLUGIN_GL_QEDL=ON 参数。

可选功能包括:

CMake 选项默认值描述
OPTION_BUILD_CCVIEWERON是否构建 ccViewer 侧项目。
OPTION_USE_SHAPE_LIBON使用 vendored shapelib 为 SHP 文件添加支持。
OPTION_USE_DXF_LIBON使用 vendored dxflib 为 DXF 文件添加支持。
OPTION_USE_GDALOFF在 CloudCompare/ccViewer 中使用 GDAL 库添加对许多栅格文件的支持。

以下选项仅适用于 Windows

CMake 选项默认值描述
OPTION_MP_BUILDOFF仅适用于 Visual Studio (多进程构建 --> 更快,但消耗大量 CPU 资源)
OPTION_SUPPORT_3D_CONNEXION_DEVICESOFF3D 鼠标处理
OPTION_USE_OCULUS_SDKOFF使用 Oculus SDK (LibOVR) 支持构建。
OPTION_USE_VISUAL_LEAK_DETECTOROFF使用 Visual Leak Detector 库进行 MSVC 的内存泄漏检测 (http://vld.codeplex.com/)

可用的插件有

GL 插件

插件名称CMake 选项默认值描述
qEDLPLUGIN_GL_QEDLOFF
qSSAOPLUGIN_GL_QSSAOOFF

IO

插件

插件名称CMake 选项默认值描述
qAdditionalIOPLUGIN_IO_QADDITIONALOFF
qCoreIOPLUGIN_IO_QCOREON
qCSVMatrixIOPLUGIN_IO_QCSV_MATRIXOFF添加对 CSV 矩阵文件的支持。
qDracoPLUGIN_IO_QDRACOOFF添加对 draco 文件的支持
qE57IOPLUGIN_IO_QE57OFF使用 libE57 为 e57 文件添加支持。
qFBXIOPLUGIN_IO_QFBXOFF使用官方 FBX SDK 为 AutoDesk FBX 文件添加支持
qLASFWIOPLUGIN_IO_QLAS_FWFOFF仅 Windows。使用 LIBlas 支持带有和不带有波形的 LAS/LAZ (弃用,请考虑使用 qLASIO 替代)
qLASIOPLUGIN_IO_QLASOFF使用 LASZIP 支持带有和不带有波形的 LAS/LAZ (所有平台)。
qPDALIOPLUGIN_IO_QPDALOFF使用 PDAL 支持 LAS/LAZ 文件 (弃用,请考虑使用 qLASIO 替代)
qPhotoscanIOPLUGIN_IO_QPHOTOSCANOFF
qRDBIOPLUGIN_IO_QRDBOFF添加对 RDB 的支持。
qStepCADImportPLUGIN_IO_QSTEPOFF添加对 STEP 文件的支持。

标准插件

插件名称CMake 选项默认值描述
q3DMASCPLUGIN_STANDARD_3DMASCOFF自动点云分类: https://lidar.univ-rennes.fr/en/3dmasc
qAnimationPLUGIN_STANDARD_QANIMATIONOFF创建视频的插件: https://www.cloudcompare.org/doc/wiki/index.php/Animation_(plugin)。
qBroomPLUGIN_STANDARD_QBROOMOFF交互式清理工具: https://www.cloudcompare.org/doc/wiki/index.php/Virtual_broom_(plugin)
qCanupoPLUGIN_STANDARD_QCANUPOOFF自动点云分类: https://www.cloudcompare.org/doc/wiki/index.php/CANUPO_(plugin)
qCloudLayersPLUGIN_STANDARD_QCLOUDLAYERSOFF手动点云分类/标记: https://www.cloudcompare.org/doc/wiki/index.php/QCloudLayers_(plugin)
qColorimetricSegmenterPLUGIN_STANDARD_QCOLORIMETRIC_SEGMENTEROFF基于颜色的点云分割: https://www.cloudcompare.org/doc/wiki/index.php/Colorimetric_Segmenter_(plugin)
qCompassPLUGIN_STANDARD_QCOMPASSOFF在点云上数字化地质结构和结构迹: https://www.cloudcompare.org/doc/wiki/index.php/Compass_(plugin)
qCorkPLUGIN_STANDARD_QCORKOFF网格布尔运算: https://www.cloudcompare.org/doc/wiki/index.php/Cork_(plugin)
qCSFPLUGIN_STANDARD_QCSFOFF自动地面/非地面分类: https://www.cloudcompare.org/doc/wiki/index.php/CSF_(plugin)
qFacetsPLUGIN_STANDARD_QFACETSOFF结构地质学插件: https://www.cloudcompare.org/doc/wiki/index.php/Facets_(plugin)
qHoughNormalsPLUGIN_STANDARD_QHOUGH_NORMALSOFF法线计算: https://www.cloudcompare.org/doc/wiki/index.php/HoughNormals_(plugin)
qHPRPLUGIN_STANDARD_QHPROFF隐藏点去除: https://www.cloudcompare.org/doc/wiki/index.php/Hidden_Point_Removal_(plugin)
qJSonRPCPluginPLUGIN_STANDARD_QJSONRPCOFFJson/RPC 控制插件
qM3C2PLUGIN_STANDARD_QM3C2OFF鲁棒点云距离计算: https://www.cloudcompare.org/doc/wiki/index.php/M3C2_(plugin)
qMasonry砌体结构分割: https://www.cloudcompare.org/doc/wiki/index.php/Masonry_Segmentation_(plugin)
- qAutoSegPLUGIN_STANDARD_MASONRY_QAUTO_SEGOFF
- qManualSegPLUGIN_STANDARD_MASONRY_QMAN_UAL_SEGOFF
qMeshBooleanPLUGIN_STANDARD_QMESH_BOOLEANOFF网格布尔运算: https://www.cloudcompare.org/doc/wiki/index.php/Mesh_Boolean_(plugin)
qMPlanePLUGIN_STANDARD_QMPLANEOFF相对于定义的平面的法线距离测量: https://www.cloudcompare.org/doc/wiki/index.php/MPlane_(plugin)
qPCLPLUGIN_STANDARD_QPCLOFFPCL 库的部分算法接口: https://www.cloudcompare.org/doc/wiki/index.php/Point_Cloud_Library_Wrapper_(plugin)
qPCVPLUGIN_STANDARD_QPCVOFF网格或点云的环境光遮蔽: https://www.cloudcompare.org/doc/wiki/index.php/ShadeVis_(plugin)
qPoissonReconPLUGIN_STANDARD_QPOISSON_RECONOFF表面网格重建: https://www.cloudcompare.org/doc/wiki/index.php/Poisson_Surface_Reconstruction_(plugin)
qRANSAC_SDPLUGIN_STANDARD_QRANSAC_SDOFF自动 RANSAC 形状检测: https://www.cloudcompare.org/doc/wiki/index.php/RANSAC_Shape_Detection_(plugin)
qSRAPLUGIN_STANDARD_QSRAOFF旋转表面分析: https://www.cloudcompare.org/doc/wiki/index.php/Surface_of_Revolution_Analysis_(plugin)
qTreeIsoPLUGIN_STANDARD_QTREEISOOFF单个树的隔离: https://www.cloudcompare.org/doc/wiki/index.php/Treeiso_(plugin)

其他指示

某些插件的依赖项没有在 CloudCompare 的存储库中,因此它们需要额外的步骤来安装。本节旨在记录这些插件的安装步骤。

qAnimation

qAnimation 插件有一个额外的选项 QANIMATION_WITH_FFMPEG_SUPPORT,用于能够使用 FFMPEG 创建视频。

qE57IO

如果您想要使用 LibE57 文件支持编译 CloudCompare (和 ccViewer),您需要:

  1. Xerces-C++ 多线程 静态

    • 在 Ubuntu 上安装包 libxerces-c-dev
    • 在 Visual C++ (Windows) 上:
      1. 选择 Static DebugStatic Release 配置
      2. 您将需要手动修改 XercesLib 项目选项,以使得 C/C++ > Code Generation > Runtime Library 在 release 和 debug 模式下都是 DLL 类型 (即 /MD 在 release 或 /MDd 在 debug)
      3. 对于 64 位版本,请确保选择正确的平台 (x64 而不是 Win32)。如果使用的是 Visual Studio Express 2010,则还需确保 toolset (在项目属性中) 设置为类似于 Windows7.1SDK
    • 只需编译 XercesLib 项目
    • 最终,CMake 将在 /include (而不是 /src) 和 /lib (没有 Release 或 Debug 子文件夹) 中查找结果文件。默认情况下,Visual 项目将这些文件放在 /Build/WinXX/VCXX/StaticXXX 中。因此,您应该创建一个具有正确组织的自定义文件夹,并将文件复制到该文件夹中。
  2. LibE57 (最后测试版本: Windows 上的 2.0.1)

    • plugins/core/IO/qE57IO/extern/libE57Format 中检出子模块,或下载并提取最新的 libE57Format 发行版

qPCL

qPCL 依赖于 PCL 库。请按照他们网站上的说明 PCL 进行操作。

qFBXIO

如果您想要在 CloudCompare (和 ccViewer) 中使用 FBX 文件支持编译,您需要: 官方的 Autodesk’s FBX SDK (最后测试版本: Windows 上的 2015.1)

然后,CloudCompare 的 CMake 项目将要求您设置以下 3 个变量:

  1. FBX_SDK_INCLUDE_DIR:FBX SDK 包含目录 (非常直观 😉
  2. FBX_SDK_LIBRARY_FILE:主 FBX SDK 库 (例如 libfbxsdk-md.lib)
  3. FBX_SDK_LIBRARY_FILE_DEBUG:用于调试模式的主 FBX SDK 库 (如果有的话)

qLASIO

如果您想要在 CloudCompare (和 ccViewer) 中使用 LAS/LAZ 文件支持,您需要 LASZip

qPDALIO [已弃用]

如果您想要编译已弃用的 PDAL I/O 插件以加载 LAS/LAZ 文件,您需要 PDAL

qLASFWIO [已弃用]

已弃用的 LAS FWF I/O 插件也可以在 Windows 上编译,使用 LASlib

您将需要设置以下变量:

  • LASLIB_INCLUDE_DIR:LAStools/LASlib/inc
  • LASZIP_INCLUDE_DIR

LAStools/LASzip/src

  • LASZIP_LIBRARY_FILE:laszip.lib
  • LASLIB_LIBRARY_FILE:las.lib

这些在构建 CloudCompare 的 CMake 配置过程中设置。

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值