CloudCompare2.11.1编译与运行(小白教程)
在编译前,你需要下载并安装的软件:
Visual Studio 2017
CMake
PCL 库(若有需要)
PDAL 库(若有需要)
CloudCompare - 2.11.1 源码
QtCreator
具体安装过程可以参考相关的教程
前期准备
下面对涉及到的软件下载安装进行介绍
1.Visual Studio 2017
下载安装即可(官网直达)
2.PCL 库(若有需要)
如果想要编译出的 CloudCompare 能够加载 .pcd 点云,需要配置 PCL 库;否则跳过。
PCL1.9.1资源包和编译好的属性表百度云下载地址(官网经常会失败):链接:https://pan.baidu.com/s/1Myd-z8J0wobeitF5wCfJCA
提取码:6666
3.PDAL库(若有需要)
如果你想要编译出的 CloudCompare 能够加载 .las / .laz 点云,请配置 PDAL 库;否则跳过
- 用 OSGEO4W 配置 PDAL ,你需要注意以下几点:
- 最好安装在默认的C盘,免得需要配置环境变量,
- 下载 PDAL 时候需要较好的网速,网速不好可能会导致下载中断,进而需要反复下载
- 对于提示缺少 License 的下载,直接勾选 I Agree ,继续下一步即可
下载地址:官网直达
安装教程参考:PDAL:OSGeo4W安装配置测试PDAL
4.CMake 的下载
- 建议下载较高的版本:官网直达
5.QtCreator
- 注意Qt的版本最好在5.9以上:官网直达
6.CloudCompare - v2.11.1源码
- 源码的下载地址:http://www.cloudcompare.org/
- 快捷下载地址:https://download.csdn.net/download/whb1815/12686160
- github下载:https://github.com/CloudCompare/CloudCompare/releases
编译
1、新建文件目录(build和prefix)
2、双击打开CMake主程序
(1)路径选择CloudCompare源码位置,本次设置为:E:/CloudCompare-2.11.1/CloudCompare-2.11.1
(2)路径是用来存放编译后的文件,本次设置为:E:/CloudCompare-2.11.1/build
然后单击“Configure”;选择x64,单击“Finish”。
3、设置相关选项
等待之后,最下面出现“Configuring done”;
然后在Ungrouped Entries——QT5_ROOT_PATH,设置路径,我的是E:/Qt/Qt5.12.2/5.12.2/msvc2017_64;
(1)在 CMake 下的 CMAKE_INSTALL_PREFIX 更改路径为新建的 prefix 文件夹路径(我的路径是:E:\CloudCompare-2.11.1\prefix)
(2)若不需要其它库,则再次单击“Configure”;出现“Configuring done”之后,单击“Generate”;出现“Generating done”,表示完成,关闭CMake即可。
(3)我用到了PCl和PDAL,勾选下列选项后,再次单击“Configure”;
然后单击“Configure”
再次单击“Configure”,上面红色的错误会消失,然后“generate”
4、打开 build 文件夹下CloudCompareProjects.sln,执行以下内容:
- 切换成Release
- 切换成 x64
- ALL_BUILD 右键 - 重新生成
- INSTALL 右键 - 重新生成
- CloudCompare 项目右键 - 设置为启动项目
5、在调试前设置,执行以下内容:
- CloudCompare 右键 - 属性 - 配置属性 - 常规 - 输出目录,改为你设置的 CMAKE_INSTALL_PREFIX 路径下的 CloudCmpare 路径,我的是:E:\CloudCompare-2.11.1\prefix
- 在工具—选项—调试—符号这里,勾选上Microsoft符号服务器(在调试成功之后,一定记得取消掉勾选,避免下次启动程序时间过长)
- 点击本地Windows调试器进行调试
可能会遇到的错误及解决办法
1、提示缺少xxx.dll
解决办法:
将以下路径下的 .dll 文件:
(1)build\libs\qCC_io\Release下的QCC_IO_LIB.dll
(2)build\libs\qCC_db\Release下的QCC_DB_LIB.dll
(3)build\CC\Release下的CC_CORE_LIB.dll
拷贝到 build\qCC\Release;若提示缺少.dll,将其复制到 build 路径下的qCC\Release下即可;双击CloudCompare.exe,可以加载部分格式的点云了。
2、在编译QPDAL_IO_PLUGIN插件的时候,在LASFilter.cpp的 canSave 函数152行出现了错误:“error C2666: operator == 12个重载有相似的转换”。
解决办法
将“if (type == CC_TYPES::POINT_CLOUD)”改为“if (type == (int64_t)CC_TYPES::POINT_CLOUD)”,就可以了。CC_CLASS_ENUM和CC_TYPES的本质还是int。