更新介绍


为了促进同行业人员(特指 LiDAR 点云处理人员或相近行业)的技术交流,解决平时开发过程中遇到的技术性问题,博主建立一个QQ群,欢迎大家积极加入,共同引领点云行业的快速发展 ~

群名:LiDAR点云部落
群号:190162198

在这里插入图片描述

说明


对于 CloudCompare 的编译,网上教程有不少,但是存在以下缺点:

  • 大多数教程写的含糊其辞,没有过程记录,有的甚至草草一笔带过,说不到重点
  • 使用的 VS 版本老旧,已经无法适应时代需求
  • 使用的 CloudCompare 库老旧,对应的方法也老旧,殊不知 CC 这两年变化已经很大了
  • 存在大面积抄袭现象
  • 无法复现编译成功的过程,没有 get 到编译重点
  • 内容过于简单,没有进行一个总体汇总,无法供后来者学习
  • 其它

为此,博主将网上的教程进行一个大汇总,归纳出最核心的配置过程。当然最好的教程还是 CloudCompare 官网提供的教程:

在编译前,你需要了解以下内容:

  • 截止发文时,CloudCompare 官网 提供的安装软件最新版本为 CloudCompare 2.11.alpha,Github 仓库提供的最新版本为 v2.10.3 (Zephyrus)
  • 最新版的 CloudCompare 的 .las / .laz 文件的读取已经由 liblas 改为 pdal
  • 由于 PDAL 涉及到众多的第三方库(目测几十个吧)。所以由于各库的杂乱,难免会对编译器产生较高的要求,经实际验证,编译 CloudCompare 的最佳 VS 版本为 VS2017 及以上。当然,如果你不计划使用读取 las 的功能,则低版本的 VS 也可以尝试
  • CloudCompare 还可以用 QtCreator 编译,但是新版本的 CloudCompare 不建议用 QtCreator 编译
  • 其它

如果你非要用低版本的 VS 进行编译,则以下内容仅可做参考,未必能成功

在编译前,你需要下载并安装的软件:

  • Visual Studio 2017 version 15.9
  • CMake
  • PCL 库(若有需要)
  • PDAL 库(若有需要)
  • CloudCompare - v2.10.3 (Zephyrus) 源码
  • QtCreator
  • 其它

以上涉及到的软件在 QQ群群文件中基本都有现成安装包或者下载链接

前期准备


下面会对以上涉及到的软件逐一进行介绍

1. Visual Studio 2017 version 15.9

下载后安装即可。低版本的 VS 请在该网站下载

2. CMake 的下载

建议下载较高版本的 CMake。不管你下载的是安装版本还是解压版本,能用就可以

3. PCL 库(若有需要)

如果你想要编译出的 CloudCompare 能够加载 .pcd 点云,请配置 PCL 库;否则跳过

4. PDAL 库(若有需要)

如果你想要编译出的 CloudCompare 能够加载 .las / .laz 点云,请配置 PDAL 库;否则跳过

由于 PDAL 库需要太多的第三方库,因此 PDAL 官网都不建议你自己去编译 PDAL 库,而是用现有的软件来直接使用 PDAL 库

目前官网推荐下载 Conda 来使用 PDAL 库。也可以使用 OSGEO4W 中包含的 PDAL 库

你可以选择以下两个中的任意一个来使用 PDAL 库:

方法一:利用 Conda

此部分教程你可以根据官网来进行配置

Conda 分为 Anaconda 和 Miniconda

官网还提供了 Miniconda 的下载,博主使用的是 Anaconda

下载完毕后,然后傻瓜式安装即可,然后打开 Anaconda Promot 依次执行以下命令:

首先测试是否安装成功:

conda --version

然后测试已经安装的包(没什么用):

conda list

然后下载 PDAL 库:

conda create --yes --name myenv --channel conda-forge pdal

然后安装 PDAL 库:

conda install --name myenv --channel conda-forge pdal

其实到这里就可以了,就可以开始 CMake CloudCompare 了,下面的三个步骤没什么用

然后检测并升级 PDAL(没什么用):

conda update pdal

下载测试数据(没什么用):

explorer.exe https://github.com/PDAL/data/raw/master/autzen/autzen.laz

测试 PDAL(换成你自己的路径,这步也没什么用):

pdal info C:\Users\Never\Desktop\autzen.laz -p 0

这些命令执行后对应的结果见附录1. Anaconda 命令执行结果展示

方法二:利用 OSGEO4W

该部分教程可参考:PDAL:OSGeo4W安装配置测试PDAL

  • 用 OSGEO4W 配置 PDAL ,你需要注意以下几点:

    • 下载前最好确定好下载位置,后期最好不要移动,否则会影响后期 CloudCompare 的编译
    • 下载 PDAL 时候需要较好的网速,网速不好可能会导致下载中断,进而需要反复下载
    • 对于提示缺少 License 的下载,直接勾选 I Agree ,继续下一步即可
    • 如果没有提示你 OSGEO4W installation completed successful ,那就说明你还没下载完成;如果你下载失败,请下载 QQ群群文件中的此部分内容
    • 其它

如果有哪位兄台想自己体验一把 PDAL 的编译过程,请参考这个英文教程,英文很简单的,不要怕。不过你要注意,这个编译也是基于 VS2017的!

5. CloudCompare - v2.10.3 (Zephyrus) 源码

  • 源码的下载,请认准这个网址:https://github.com/CloudCompare/CloudCompare/releases
  • 如果你直接在 Github 仓库首页(https://github.com/CloudCompare/CloudCompare)进行下载,后期会出现一些未知错误

6. QtCreator

注意 Qt 版本最好在 5.7 以上,而且注意和你的编译器相匹配,具体请参考我的博客 PCL+VS+Qt+Win10 的综合配置精华

7. 其它

编译 CloudCompare


1. 新建以下文件夹目录:

-------- C:\Users\Never\DesktopCC
                | -----CloudCompare-2.10.3      # 存放源码
               | -----build                          # 存放 build 出来的工程)
                | -----prefix                        # 存放最终的 CloudCompare.exe)

2. 打开 CMake GUI,按照以下流程进行操作:

  • Where is the source code 填写文件夹 CloudCompare-2.10.3
  • Where to build the binaries 填写文件夹 build
  • 勾选 Grouped(没什么用)
  • 勾选 Advanced(没什么用)
  • Configure
  • 遇到失败
  • Ungrouped Entries 下的 QT5_ROOT_PATH 选择你的 Qt 路径,比如我的是:D:/Qt/5.7/msvc2013_64
  • CMake 下的 CMAKE_INSTALL_PREFIX 更改路径为新建的 prefix 文件夹路径
  • 如果你想要编译 PDAL,请勾选 OPTION 下的 OPTION_PDAL_LAS
  • 再次 Configure
  • 再次遇到失败
  • Ungrouped Entries 下的 PDAL_DIR 选择你的 PDAL 路径,比如我的是:D:/Anaconda3/envs/myenv/Library/lib/cmake/PDAL
  • 再次 Configure
  • 到这里 Configure 应该成功了,若有失败,请检查以上过程你是否错做正确
  • 正确无误的话,Generate

3. 打开 build 文件夹下的 CloudCompareProjects.sln,依次执行一下内容:

  • 切换成 x64
  • 切换成 Debug 或者 Release(根据你需要,自行设定)
  • ALL_BUILD 右键 - 重新生成,如果报错,请检查上面的配置
  • INSTALL 右键 - 重新生成,如果报错,请检查上面的配置
  • CloudCompare 项目右键 - 设置为启动项目
  • CloudCompare 右键 - 属性 - 配置属性 - 常规 - 输出目录,改为你设置的 CMAKE_INSTALL_PREFIX 路径下的 CloudCmpare 路径,如我的是:C:\Users\Never\Desktop\CC\prefix\CloudCompare,应用 - 确定(这个请参考官网推荐的后处理解决方案
  • Ctrl + F5 运行程序,完美启动

各阶段可能遇到的问题


1. Visual Studio 下载哪个版本的问题

  • 看你自己选择,在不编译 PDAL 的情况下,VS 2013 也是可以选择安装的(这个博主尝试过),只不过你后期编译的 CloudCompare 无法加载 .las 点云,无法加载 .las 点云的 CloudCompare 是没有灵魂的
  • 要编译 PDAL 的话,建议你最好使用 VS2017,不然你可能会遇到 Error C2280 的错误,这个错误可能会涉及到改源码,很麻烦的
  • 其它原因

2. CMake 不过的问题

  • 如果是 Configure 失败,则检查你的 QT5_ROOT_PATH 路径
  • 如果你 CMake 了 PDAL,请检查你的 PDAL_DIR 路径设置是否正确
  • 如果你 CMake 了 PCL,请检查 PCL 配置是否正确。正常情况下,CMake 会自动找到你的 PCL 路径;没有找到的话请检查你的 PCL 配置本身是否正确
  • CMake 版本不要太低
  • 其它原因

3. Generate 失败的问题

  • 这个没遇到过…

4. ALL_BUILD 重新生成失败

  • 这个错误的可能原因就有很多,首要原因就是 PDAL 库的问题,也就是你的 VS 版本问题
  • 其次就是你 CMake 过程中可能出现了一些问题
  • 其它原因

5. INTSALL 重新生成失败

  • 这个没遇到过…

6. Ctrl + F5 无法启动的问题

  • 请设置 输出目录 路径
  • 其它原因

7. Ctrl + F5 启动后提示缺少 XXX.dll

  • 这个问题的原因也有很多,原因需要自己去排除
  • 解决方法是用 Everything 软件搜索对应的 dll,并复制到 CloudCompare.exe 的同级目录下,比如我的是 C:\Users\Never\Desktop\CC\prefix\CloudCompare
  • 复制时候,优先复制 PDAL 库中的 dll,没有的话,再复制 CloudCompare 软件中自带的 dll
  • 其它原因

8. 复制 dll 后出现动态调用失败的问题

  • 这个就是说你复制的 dll 版本不对,换另一个路径下的 dll 重新尝试
  • 其它原因

9. 编译 CloudCompare 缺少 xxx.lib

  • 依次设置 QCC_DB_LIBQCC_GL_LIBQCC_IO_LIB 的常规输出目录为 CloudCompare.exe 的同级目录即可
  • 其它原因

10. 提示缺少 GDAL203.dll 的错误

  • 可能与 VS 版本有关系
  • 也可能是 PDAL 库有问题,不过优先考虑 VS 版本
  • 其它原因

11 生成 ALL)BUILD 时提示 E2512 的错误

12. 在 ALL_BUILD 时遇到 C2666 的错误

  • 考虑你 CMake 选择的 VS 版本和你打开 CloudCompareProjects.sln 的 VS 版本是否一致
  • 其它

13. …

未来尝试解决的问题


  • 编译能够加载其它格式点云数据的 CloudCompare
  • 更新 CloudCompare 插件编写的博客,请持续关注后续博客
  • 其它

参考博客


强烈推荐

  1. PDAL:OSGeo4W安装配置测试PDAL

  2. CloudCompare2.9.1编译

  3. VS2013下CloudCompare的编译

  4. Win7+VS2017+cloudcompare 编译和运行

  5. CloudCompare:Win10 + VS2017 + Qt5.9 + CMake3.14 编译CloudCompare2.1x

其它

  1. 【CloudCompare2.9.1编译】vs2015+Qt5.7.1+win10环境下相关注意事项

  2. vs2012+win8.1+cloudcompare源码编译

后期研究如何编写 CC 插件可能会用到的链接

  1. libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)

  2. CloudCompare学习-添加菜单

  3. 八叉树Octree

这个博主的系列文章很好

  1. CloudCompare插件编写一(插件框架)

  2. CloudCompare插件编写二(数据结构)

  3. CloudCompare插件编写三(算法实现)

附录


1. Anaconda 命令执行结果展示


(base) C:\Users\Never>conda --version
conda 4.7.10

(base) C:\Users\Never>conda list
# packages in environment at D:\Anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0                    py37_0
...                       ...                      ...
zstd                      1.3.7                h508b16e_0

(base) C:\Users\Never>conda create --yes --name myenv --channel conda-forge pdal
Collecting package metadata (current_repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.7.10
  latest version: 4.7.11

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: D:\Anaconda3\envs\myenv

  added / updated specs:
    - pdal


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    boost-cpp-1.68.0           |    h6a4c333_1000        31.1 MB  conda-forge
    ...                        |                           
    zstd-1.4.0                 |       hd8a0e53_0         1.5 MB  conda-forge
    ------------------------------------------------------------
                                           Total:       291.9 MB

The following NEW packages will be INSTALLED:

  boost-cpp          conda-forge/win-64::boost-cpp-1.68.0-h6a4c333_1000
  ...                ...
  zstd               conda-forge/win-64::zstd-1.4.0-hd8a0e53_0



Downloading and Extracting Packages
jsoncpp-1.8.4        | 118 KB    | ################################################################### | 100%
...
proj4-6.1.0          | 8.4 MB    | #################################################################### | 100%

...

# All requested packages already installed.

(base) C:\Users\Never>conda update pdal

PackageNotInstalledError: Package is not installed in prefix.
  prefix: D:\Anaconda3
  package name: pdal

(base) C:\Users\Never>explorer.exe https://github.com/PDAL/data/raw/master/autzen/autzen.laz

(base) C:\Users\Never>pdal info C:\Users\Never\Desktop\autzen.laz -p 0

(base) C:\Users\Never>

2. 一些过程截图

OSGEO4W PDAL 安装完成
OSGEO4W PDAL 安装完成
没有 License ,勾选 I Agree 下一步

没有 License ,勾选 I Agree 下一步

下载 x64 的 OSGEO4W

下载 x64 的 OSGEO4W

安装 OSGEO4W 时候点击 skip 前后

在这里插入图片描述

在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐