花了一天的时间踩了很多坑,在这里和大家分享下帮助大家避雷。
我主要根据这个链接CloudCompare 源码编译 教程成功的,很多细节都讲到了,可以作为主要参考。
对照链接补充几点关键:
-
CloudCompare源码https://github.com/cloudcompare/cloudcompare
一定要注意里面BUILD文件提到的版本问题,因为再详细的文档也可能随着源码要求而过时,建议先自己阅读下源码的Build要求
代码使用压缩包形式下载,不要使用git拉代码,否则最后编译的时候会报错无法打开包括文件: “Kriging.h”,源码和压缩包代码存在些许不一致。 -
Visual Studio 我用的是2017,2019应该也可以,需要支持C++11,版本稍微新点好。
-
Qt下载,链接中使用的开源代码,要涉及编译,时间可能会很久。网速好点的直接上官网下载即可,我下载的是这个版本https://download.qt.io/new_archive/qt/5.14/5.14.2/,这里的版本一定要符合CloudCompare中BUILD文件描述,否则后期你可能得先解决qalgorithms.h相关的编译报错,而且即使编译都通过了也会因为Qt5Cored.dll启动不了程序,一顿查windeployqt也无济于事。人家弹框建议重装qt,只能说这建议还真是中肯啊,不自觉我又开始落泪!
安装的时候我为了以防万一,选择的是64和32位。以下是我的选择:
-
Cmake下载https://cmake.org/download/ (我使用的是cmake-3.27.4-windows-x86_64.zip)
注意使用的时候Cmake配置的时候,除了选定generator还要特别注意编译目标选择的是x64还是x86。最早看了其他博文,根据自己电脑vs配置,结果后来编译报错模块计算机类型“X86”与目标计算机类型“X64”冲突等一系列问题(本质原因你链接的库和当前模块要生成的对象位数不匹配导致的,由于sln里项目很多,一一解决会花非常久时间,答应我别走这条路),请一定谨慎选择这里的版本。
-
博文的末尾写得已经特别详细了,一些我们编译出来的dll不在运行目录下会报错,只需逐个复制(或者在各个项目设置好输出目录)即可。但我还是遇到了报Qt动态库缺失的问题,此时配合windeployqt命令(在开始中找到对应vs版本的命令窗口,输入windeployqt.exe xxx\qCC\Debug\deployqt\CloudCompare.exe)
希望这篇踩坑日记能帮助你少走点弯路。