文章目录
-
- 更新介绍
- 说明
- 前期准备
-
- 1. Visual Studio 2017 version 15.9
- 2. CMake 的下载
- 3. PCL 库(若有需要)
- 4. PDAL 库(若有需要)
- 5. CloudCompare - v2.10.3 (Zephyrus) 源码
- 6. QtCreator
- 7. 其它
- 编译 CloudCompare
- 各阶段可能遇到的问题
- 未来尝试解决的问题
- 参考博客
- 附录
更新介绍
为了促进同行业人员(特指 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。不管你下载的是安装版本还是解压版本,能用就可以
- 官网直达,或者可以从这里下载
- 顺便分享一个 CMake 的学习网址
3. PCL 库(若有需要)
如果你想要编译出的 CloudCompare 能够加载 .pcd 点云,请配置 PCL 库;否则跳过
- 这个可以参考我之前的博文:PCL+VS+Qt+Win10 的综合配置精华
4. PDAL 库(若有需要)
如果你想要编译出的 CloudCompare 能够加载 .las / .laz 点云,请配置 PDAL 库;否则跳过
由于 PDAL 库需要太多的第三方库,因此 PDAL 官网都不建议你自己去编译 PDAL 库,而是用现有的软件来直接使用 PDAL 库
目前官网推荐下载 Conda 来使用 PDAL 库。也可以使用 OSGEO4W 中包含的 PDAL 库
你可以选择以下两个中的任意一个来使用 PDAL 库:
方法一:利用 Conda
此部分教程你可以根据官网来进行配置
Conda 分为 Anaconda 和 Miniconda
- 下载 Anaconda
官网还提供了 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
- 官网直达(
下载 64bit
)
该部分教程可参考: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_LIB
、QCC_GL_LIB
、QCC_IO_LIB
的常规输出目录为CloudCompare.exe
的同级目录即可 - 其它原因
10. 提示缺少 GDAL203.dll 的错误
- 可能与 VS 版本有关系
- 也可能是 PDAL 库有问题,不过优先考虑 VS 版本
- 其它原因
11 生成 ALL)BUILD 时提示 E2512
的错误
- 考虑你的 Qt 环境是否正确配置,也就是说,Qt 是否能单独运行,这部分不会配置的,请参考我的博客 PCL+VS+Qt+Win10 的综合配置精华
- 其它
12. 在 ALL_BUILD 时遇到 C2666
的错误
- 考虑你 CMake 选择的 VS 版本和你打开
CloudCompareProjects.sln
的 VS 版本是否一致 - 其它
13. …
- …
未来尝试解决的问题
- 编译能够加载其它格式点云数据的 CloudCompare
- 更新 CloudCompare 插件编写的博客,请持续关注后续博客
- 其它
参考博客
强烈推荐
-
PDAL:OSGeo4W安装配置测试PDAL
-
CloudCompare2.9.1编译
-
VS2013下CloudCompare的编译
-
Win7+VS2017+cloudcompare 编译和运行
-
CloudCompare:Win10 + VS2017 + Qt5.9 + CMake3.14 编译CloudCompare2.1x
其它
-
【CloudCompare2.9.1编译】vs2015+Qt5.7.1+win10环境下相关注意事项
-
vs2012+win8.1+cloudcompare源码编译
后期研究如何编写 CC 插件可能会用到的链接
-
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)
-
CloudCompare学习-添加菜单
-
八叉树Octree
这个博主的系列文章很好
-
CloudCompare插件编写一(插件框架)
-
CloudCompare插件编写二(数据结构)
-
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.10latest version: 4.7.11Please update conda by running$ conda update -n base -c defaults conda## Package Plan ##environment location: D:\Anaconda3\envs\myenvadded / updated specs:- pdalThe 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 MBThe 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_0Downloading 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 pdalPackageNotInstalledError: Package is not installed in prefix.prefix: D:\Anaconda3package 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 安装完成
没有 License ,勾选 I Agree 下一步
下载 x64 的 OSGEO4W
安装 OSGEO4W 时候点击 skip 前后