环境搭建完成后,这篇文章主要分享编译e57和las插件过程中遇到的问题。
1.勾选e57和las等插件cmake选项
打开QEDL, QADDITIONAL, QE57, QLAS, QPCL等插件选项,一些我个人觉得cloudcompare做的比较好的插件功能。
执行Configure,会出现找不到Xercesc库(e57插件依赖)和laszip库(las插件依赖)的错误,如下图
需要在vcpkg里安装xerces-c库和laszip库。
//安装xerces-c的x64版本库
vcpkg install xerces-c:x64-windows
//安装laszip的x64版本库
vcpkg install laszip:x64-windows
重新configure和generate成功。
打开vs工程,会出现EDL,E57, LAS等插件项目
执行ALL_BUILD,项目编译所有项目,编译成功
编译INSTALL项目,在输出目录就看到自己编译出的cloudcompare,双击exe运行程序。
2.在vs中调试CloudCompare程序
这个专栏是基于CloudCompoare做二次开发,做开发就会遇到Bug,要解决bug就离不开调试程序。但是现在想要在vs中调试CloudCompare,会出现缺少dll的错误。这是因为exe和dll不在同一目录下。
在CMakeLists.txt中添加代码,将所有exe和dll输出目录保持一致
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
重新configure和generate后,编译ALL_BUILD,输出目录一致
这几个插件dll剪切到plugins文件夹
现在在vs中可以调试CloudCompare主程序,打断点了。当然这种需要手动剪切dll的方式比较蹩脚,等找到更优雅的方式,会随时更新这块。