一、 准备工作
- 官网下载安装Qt
官网下载Qt安装包,包含编译器MinGW,编辑器QtCreator,以及Qt库。 - 官网下载安装CMake(学习CMake教程,要能看懂CMake文件)
- 官网下载CloudCompare源码包
二、 QtCreator导入CloudCompare工程项目
解压CloudCompare的源码包,将根目录下的CMakeList.txt拖入QtCreator,选择带有Qt库的kits构建。点击Configure。
点击左侧项目 ,里面有CMake构建选项,注意下面的PLUGIN。
PLUGIN有两类,一类是IO插件,一类是Standard插件。IO插件主要完成文件的输入与输出的操作,如果已有的数据格式能够满足开发的要求,就不需要开发IO插件了。
标准插件,用于数据的处理。已有的标准插件大多都依赖其他的库,因此默认是不勾选的,这类都是点云处理上的功能,有需要可以查看官网手册进行编译安装。
下面自己开发的插件里面,需要在这儿勾选后编译。每次修改之后,需要Apply Configure。
注意要自己修改Qt5的目录,例:D:\Qt5\5.14.1\mingw73_64\lib\cmake\Qt5Core
编译后,会在目录下出现一个build目录,复制以下三个文件:
build \CC\ libCC_CORE_LIBd.dll
build \plugins\core\IO\qCoreIO\ libQCORE_IO_PLUGINd.dll
build \libs\qCC_io\ libQCC_IO_LIBd.dll
粘贴到build\qCC下(与CloudCompare.exe同目录)
如果出现无法定位动态链接库 一定要把Qt的路劲添加到path里面,并且置顶(anaconda的python中的qt库名字与Qt一样,匹配到了前面就会确认)
三、 CloudCompare插件开发
在源码\CloudCompare-master\CloudCompare\plugins\core\Standard下创建新的插件目录qVoxel,修改此目录下的CMakeList.txt,添加一行:
add_subdirectory( qVoxel )
其他部分参考\CloudCompare-master\CloudCompare\plugins\example\ExamplePlugin
修改插件名称,之后再QtCreator中就可以看到CMake下面新增的PLUGIN_STANDARD_QVOXEL选项,打上勾,Apply Configure。
可以看到左边的项目文件里面成功添加qVoxel,按正常C++程序开发即可,参考其他插件。
主要实现doAction代码部分即可。
编译完后将插件生成的动态链接库粘贴到build\qCC\plugins下(没有就新建一个)