基于vcpkg+cmake+Qt对CloudCompare二次开发

CloudCompare是一款优秀的开源软件,用于处理三维点云。有很多介绍基于其进行二次开发的文章,但是没有介绍其中的一些插件应用和详细功能,从这篇文章我会从搭建环境开始,逐步分享我在这方面的一些经验,包括一些实用案例。

准备工作:本教程默认已经装了visualstudio2022。

1 基于vcpkg编译Qt5和pcl库

vcpkg是微软出的一个管理c++第三方库的工具,在windows下非常好用,推荐使用。建议先入门vcpkg再看后面的内容,vcpkg的入门教程网上很多,这里我就不赘述了。

//下载vcpkg源码
git clone git@github.com:microsoft/vcpkg.git

1.1 编译Qt5

Qt5也可以直接从官网上直接下载,我是为了使用vcpkg方便管理整个第三方库,所以在vcpkg里编译Qt5。

输入命令:

vcpkg install qt5:x64-windows

编译过程中可能会出现如下错误:

这是由于找不到qmake.exe路径导致的,解决办法也很简单:

找到下面这个文件,将tool/qt5/bin改为tool/qt5-base/bin保存,重新编译qt5即可成功

1.2 编译pcl库

输入命令,可能需要时间比较长耐心等待即可,中间如果有失败,可能是网络问题,多编译几次。

vcpkg install pcl:x64-windows

2 基于cmake构建CloudCompare工程

2.1 下载cloudcompare源码

git clone git@github.com:CloudCompare/CloudCompare.git

//或者直接clone所有子仓库,后面就不用手动下载子仓库了,但是会导致源码比较大
git clone --recurse-submodules git@github.com:CloudCompare/CloudCompare.git

在cmake选择源码目录和工程目录

点击Configure,在弹出框选择visual studio 17 2022(选择本机安装的对应版本),platform选择x64,开始构建后,会出现找不到qt5-config.cmake的error,如下图。

修改CMakeLists.txt,如下图,设置vcpkg.cmake的路径,保存后重新构建cmake。

#必须放到project之前
set(CMAKE_TOOLCHAIN_FILE "G:/SDK/vcpkg/scripts/buildsystems/vcpkg.cmake")

出现找不到qmake.exe的错误。解决这个错误,我的方法是将tool/qt5-base/bin目录下的qmake.exe复制到tools/qt5/bin和tools/qt5-tools.bin(这个目录也需要复制进来,后面工程编译会需要到,不然会出错)下。

重新Configure,上述错误解决。但是出现qVoxFall插件构建错误,如下图

这是因为该插件源码需要单独下载。

类似需要单独下载的源码还有CCCorLib

,以及CCCoreLib/extern/nanoflann和CloudCompare/libs/CCAppCommon/QDarkStyleSheet

这些源码单独下载完成后,重新Configure,成功。Generate,也成功。

2.2 初步编译遇到的问题

2.2.1 我一般会提前设置下面这俩编译选项

  • 取消ccviewer编译选项,一般主工程中会带有ccviewer,所以不需要单独编译
  • 打开多线程编译选项,会加快编译速度(单线程,速度提升几倍,或建议打开)

2.2.2 一个编译错误

到此,CloudCompare的visualstudio工程就构建完毕了。点击Open Project按钮,打开visualstudio工程,可以进行编译了。

编译cloudcompare主项目时,会出现一个编译错误,如下图,这是因为vcpkg编译qt5时,没有编译QGamepad组件。

解决办法有两个

  • 在vcpkg里安装编译qt5的QGamepad组件
  • 但是我暂时用不到该组件,所以另一个解决办法就是去掉该组件的依赖设置,如下图

重新Configure和Generate,编译vs工程,成功。

这次构建工程的教程就到这里,下一篇我会分享编译e57和las读写插件相关的教程。

感性兴趣的朋友可以关注我,后面我会继续分享怎么基于cloudcompare二次开发,做出一些自己想要的点云处理插件功能。

在使用vcpkgcmake安装和配置pcl时,你可以按照以下步骤进行操作: 1. 首先,你需要在Visual Studio中创建一个新的空的C++项目,或者使用已有的项目。确保你在项目文件夹中打开一个命令提示符或PowerShell窗口。 2. 使用vcpkg安装pcl和vtk的依赖项。在命令提示符或PowerShell窗口中,导航到vcpkg安装目录,并运行以下命令: ``` .\vcpkg.exe install pcl[vtk --recurse``` 这将安装pcl和vtk所需的所有依赖项。 3. 安装Cmake,你可以从官方网站上下载并安装Cmake。 4. 在项目的根目录下创建一个名为CMakeLists.txt的文件,并将以下内容复制到文件中: ``` cmake_minimum_required(VERSION3.8) project(pcltest1) find_package(PCL REQUIRED) if(PCL_FOUND) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) add_executable(pcltest1 src/pcltest1.cpp) target_link_libraries(pcltest1 ${PCL_LIBRARIES}) endif() ``` 这个CMakeLists.txt文件定义了项目的构建规则和依赖项。 5. 在命令提示符或PowerShell窗口中,导航到项目文件夹,并运行以下命令来生成项目文件: ``` cmake . ``` 这将根据CMakeLists.txt文件生成项目文件。 6. 最后,使用Visual Studio打开项目文件,并通过构建和运行项目来验证pcl是否正确安装和配置。 请注意,上述步骤假设你已经正确安装vcpkgCMake,并且已经配置了适当的环境变量。如果你遇到任何问题,请参考vcpkgCMake的官方文档或社区支持来获取更多帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值