VS2017 + Qt5 + CloudCompare2.11.0 编译

(一)资源准备

(1)CloudCompare2.11.0源码
源码下载地址:https://github.com/CloudCompare/CloudCompare/releases

(2)PDAL或者laslib
使得CC支持读写LAS格式的点云文件,如果没有PDAL也可以选择编译Laslib,后者支持Las1.3和Las1.4格式。

(3)PCL-1.9.1
使得CC支持读写pcd格式的点云文件,也方便在后续二次开发过程中调用PCL库。

(二)CMake配置

(1)设置路径
CC源码资源路径:E:/ccProject/CloudCompare-2.11.0-master
CC项目生成路径:E:/ccProject/CC-Build
666
(2)点击左下角Configure按钮,配置编译环境
开发环境:VS2017
开发平台:x64
点击Finish按钮,如果没问题的话,CMake控制台最后显示“Configuring done”。
在这里插入图片描述
在这里插入图片描述

(3)设置相关项目的Value值

1)Qt5路径设置
Ungrouped Entries >>> QT5_ROOT_PATH >>> C:/OSGeo4W64/apps/Qt5

2)安装PDAL和PCL插件
(勾选)PLUGIN >>> PLUGIN_IO_PDAL 将PDAL以插件的形式安装。
(勾选)PLUGIN >>> PLUGIN_STANDARD_QOCL将PCL库以插件的形式安装。
如果你不用PDAL而选择laslib库来读写点云,则勾选 PLUGIN >>> PLUGIN_IO_QLAS_FWF

3)多线程OpenMP
OPTION >>> OPTION_OPENMP_BUILD(勾选)支持多线程构建。
此时,点击“Configure”按钮再次进行配置,系统会自动搜索到与PCL库关联的文件路径(Boost、FLANN、OPENNI2、PCL、QHULL),但仍然会提示缺少PDAL库。

4)PDAL路径设置
Ungrouped Entries >>> ODAL_DIR>>> C:/OSGeo4W64/lib/pdal/cmake
此时,再次点击“Configure”按钮进行配置,不出意外控制台显示“Configuring done”,表示配置成功。

最终各项配置图如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)点击“Generator”按钮,生成解决方案(*.sln)
在这里插入图片描述

(三)VS2017编译CC源码

(1)解决方案配置设为“Release模式”——> 右击“ALL_BUILD”——>重新生成
在这里插入图片描述

(2)编译错误
编译QPDAL_IO_PLUGIN的时候发生错误,在LasFilter.cpp的canSave函数中(第152行)提示:“error C2666: operator == 12个重载有相似的转换”。

解决方法:考虑到“CC_CLASS_ENUM”的类型是“int64_t”,而“CC_TYPES::POINT_CLOUD”是普通枚举类型,所以需要对后者进行数据类型转换,使两者类型一致即可。因为枚举类型本质上也是整型!!!
在这里插入图片描述

(3)设置相关动态链接库

将以下3个dll文件复制到CloudCompare.exe同级目录(项目生成目录\qCC\Release\)
CC项目生成目录\CC\Release\CC_CORE_LIB.dll
CC项目生成目录\libs\qCC_io\Release\QCC_IO_LIB.dll
CC项目生成目录\libs\qCC_db\Release\QCC_DB_LIB.dll

将以下3个文件夹复制到CloudCompare.exe同级目录
Qt5安装目录\plugins\imageformats
Qt5安装目录\plugins\platforms
Qt5安装目录\plugins\sqldrivers

在CloudCompare.exe同级目录下新建一个名为“plugins”的文件夹(必须这样命名),并将以下3个dll文件复制到plugins文件夹内
CC项目生成目录\plugins\core\Standard\qPCL\Release\QPCL_PLUGIN.dll
CC项目生成目录\plugins\core\Standard\qPCL\PclIO\Release\QPCL_IO_PLUGIN.dll
CC项目生成目录\plugins\core\IO\qPDALIO\Release\QPDAL_IO_PLUGIN.dll

将“CloudCompare”设为启动项,F5运行。
在这里插入图片描述
下图是CC中的插件管理模块窗口,不难发现,CC会从多个指定路径下寻找插件,如果插件被识别到,会在左边列表中显示。
在这里插入图片描述
(4)遇到的问题

即使编译了PDAL库,还是不能加载las数据。
在这里插入图片描述

在控制台日志中发现CC无法识别PDAL插件,提示“QPDAL_IO_PLUGIN.dll does not seem to be a valid plugin
在这里插入图片描述
解决方法:将pdal_util.dll和pdalcpp.dll所在的文件夹路径添加到计算机的系统变量Path中去,然后重启计算机即可。
在这里插入图片描述

运行后终于可以加载LAS和pcd格式的点云了!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/NEXUS666/article/details/110948368