Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】

Cloudcompare开发环境搭建

安装需要:

windows上编译需要:vs2022、qt5.15.2 (msvc)、cmake-gui、Cloudcompare2.12.2(源码)、CCCoreLib(源码,提供cloudCompare的算法库)

linux上编译需要:cmake、qt的一些依赖包、Cloudcompare2.12.2(源码)、CCCoreLib

cloudCompare插件编译所需依赖库或工具:PDAL、PCL、LasTools

1、编译Cloudcompare 2.12.2 for windows 64-bit

1.1、提前准备

首先安装cmake-gui(3.22.3)、其次安装vs2022、再安装qt5.15.2 (msvc)在线安装,这些都是按照说明可以直接一步一步的进行安装,较为简单,就是比较耗时与空间,可以进行网上参考相关资料安装

需要编译插件PCL的,直接进行官网下载PCL的windows安装程序(我下载的是PCL-1.12.0-AllInOne-msvc2019-win64.exe),然后直接执行安装程序即可。

PCL环境变量配置:
Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第1张图片

在PATH中添加:

Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第2张图片

编译PDAL的需要,使用OSGeo4W进行PDAL的相关依赖库的下载与安装(OSGeo4W选择Advanced Instal,然后一直下一步不用改变配置,到了select package界面,搜索pdal,下一步安装即可)。

Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第3张图片

LasTools的编译:先从下载地址进行下载(据说GitHub不行)

  1. 解压后使用cmak-gui进行编译,直接编译即可,根据自己需要选择,configuration,generation,从VS中打开该项目

Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第4张图片

  1. 在vs中打开

Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第5张图片

  1. install编译过程中出现The Command setlocal,

Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第6张图片

  1. 重新build INSTALL即可

1.2、cloudCompare的编译

源码下载GitHub地址:https://github.com/CloudCompare/CloudCompare/tree/version_2.12.2,https://github.com/CloudCompare/CCCoreLib(提供数据结构与算法库)

解压后,将CCCoreLib-master根目录下的所有的文件复制到CloudCompare-master\libs\qCC_db\extern\CCCoreLib 目录下

  1. 首先在CloudCompare-master同级目录创建,build与install文件夹

在这里插入图片描述

  1. 打开cmake-gui

    2.1、选择项目源码与build目录
    Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第7张图片

    2.2、选择vs2022生成

    Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第8张图片

    2.3、接下会出现一系列的报错

    • 首先会出现QT5对应vs2022的cmake的配置文件找不到

Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第9张图片

  • 继续点击Configure,其次是一些需要手动添加的依赖包路径

    如:
    Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第10张图片

  • 以及添加编译的一些插件:PDAL,PCL,LAS
    Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第11张图片

  • 插件找不到的报错:

Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第12张图片

  • 继续点击configure(虽然有一些warning),最后成功"全白",点击Generate生成(如何继续报错,按照上面的查询解决问题即可),open the project,会在vs2022中打开,下图是我的整个配置图,仅供参考(哪里错查哪里,然后再慢慢解决即可)!
    Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第13张图片
  1. 在vs2022中进行build,install,按照图中进行操作
    Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第14张图片

  2. 运行,会出现一些dll找不到的错误,如:CCPluginAPId.dll、Qt5PrintSupportd.dll、CCAPPCommond.dll、QCC_GL_LIBd.dll等

    无非就是将,这些dll库,复制到工作路径即可,进入以下目录:(有一些QT的缺失,在D:\soft\qt5.15.2\5.15.2\msvc2019_64\bin 下找缺的dll)

    D:\soft\CloudCompare-2.12.2\build2\libs\CCAppCommon\Debug

    D:\soft\CloudCompare-2.12.2\build2\libs\qCC_db\extern\CCCoreLib\Debug

    D:\soft\CloudCompare-2.12.2\build2\libs\CCPluginAPI\Debug

    D:\soft\CloudCompare-2.12.2\build2\libs\qCC_db\Debug

    D:\soft\CloudCompare-2.12.2\build2\libs\qCC_glWindow\Debug

    D:\soft\CloudCompare-2.12.2\build2\libs\qCC_io\Debug

    D:\soft\CloudCompare-2.12.2\build2\libs\CCFbo\Debug

    D:\soft\qt5.15.2\5.15.2\msvc2019_64\bin

    将dll 拷贝至:

    D:\soft\CloudCompare-2.12.2\build2\qCC\Debug

  3. 最后你会发现还是不能运行,编译成功了但是运行错误

Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第15张图片

# 可以使用D:\soft\qt5.15.2\5.15.2\msvc2019_64\bin的windeployqt.exe,进行应用程序依赖qt的包进行自动deploy部署工作目录中
cd D:\soft\qt5.15.2\5.15.2\msvc2019_64\bin
./windeployqt.exe D:\soft\CloudCompare-2.12.2\build2\qCC\Debug
  1. 再次运行,即大功告成了,但是问题是运行的plugins图标是灰色

    Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】_第16张图片

  2. 将D:\soft\CloudCompare\build\qCC\Debug创建一个plugins的文件夹,然后将D:\soft\CloudCompare\install\CloudCompare_debug\plugins里面的所有的ddl的插件复制到D:\soft\CloudCompare\build\qCC\Debug\plugins中,即可。其实直接打开D:\soft\CloudCompare\install\CloudCompare_debug\CloudCompare.exe也行

1.3、编译对应的插件

1、PLUGIN_IO_QLAS_FWF

这个应该是支持LAS的地理位置格式数据

2、PLUGIN_IO_QPDAL

实现读写las文件

3、PLUGIN_STANDARD_QPCL

PCLInterface for PCL library (normals computation, outliers removal, etc.),就是提供一些点云数据的处理库,如:点云分割,点云标记等

4、PLUGIN_STANDARD_QCOMPASS

Compass Easy digitization of geological structures and structural traces on point clouds

compass使得cc在点云上地质结构与地质追踪更加轻松实现数字化

2、编译Cloudcompare 2.12.2 for linux in WSL(Ubuntu20.04)

首先安装cmake,因为cloudCompare需要它来进行编译与安装。在官网进行下载https://cmake.org/download/,下载的是cmake-3.22.3-linux-x86_64.tar.gz

mkdir /usr/local/cmake
# 以root进行安装
tar -zxvf cmake-3.22.3-linux-x86_64.tar.gz -C /usr/local/cmake 
# 配置环境变量,将下面的代码添加到/etc/profile中,注意替换自己cmake安装的路径与版本
export PATH=/usr/local/cmake/cmake-3.22.3-linux-x86_64/bin:$PATH 
# 检查是否安装好
cmake --version

其次需要先进行安装这几个依赖的package其中包括主要包括qt5的一些依赖

源码下载GitHub地址:https://github.com/CloudCompare/CloudCompare/tree/version_2.12.2,https://github.com/CloudCompare/CCCoreLib(提供数据结构与算法库)

apt-get install libqt5svg5-dev libqt5opengl5-dev qt5-default qttools5-dev qttools5-dev-tools libqt5websockets5-dev
# 获取对应的cloudCompare的源码,同时CCCoreLib-master源码,并且解压后,将CCCoreLib-master根目录下的所有的文件复制到
# cloudcomapre\CloudCompare-master\CloudCompare-master\libs\qCC_db\extern\CCCoreLib下
# 进入到cloudCompare源码的根目录下
makdir build 
cd build
# 编译,注意这里是完全有apt-get安装的,对应的依赖可以找到,如果不行可以使用 ldd exe程序,查看所需其依赖库
cmake .. 
# 生成二进制的文件
cmake --build .
# 安装
cmake --install .
# 运行,默认是安装到/usr/local/bin,对应的执行文件,一般就已经成功了对于完全的虚拟机来说,但是对于wsl2来说还没成功,有以下问题
CloudCompare

wsl2的问题:

虽然找到了对应的plugin xcb(有且加载了),但是不能连接进行display

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DoNRvdZy-1659687235155)(assets/1657077972806.png)]

解决:因为安装的wsl是纯命令行的,故而无法运行带有界面的GUI的程序。所以需要安装VcXsrv Windows X Server 来进将wsl的GUI展示,通过network传送到在windows界面GUI展示。需要运行VcXsrv也称为X server。

  1. 首先在windows上安装运行vcxsrv(X server) https://sourceforge.net/projects/vcxsrv/files/latest/download,【可以参考其他blog,比较简单,按照步骤即可】

  2. 在wsl上安装X11-apps

apt-get install x11-apps
export DISPLAY=$(/sbin/ip route | awk '/default/ { print $3 }'):0 # 可以将它写入/etc/profile配置文件中,否则每次都要写
CloudCompare # 即可运行了

总结

在windows上进行编译cloudCompare解决依赖库的一些关系比较复杂,里面还有些可能的原因是使用的是vs2022新版增加了手动添加依赖库的繁琐度【笔者仅个人认为】

而在linux就相对简单,直接下载对应的package,它会自动添加到对应的目录并引用,不需要你手动添加依赖库,但是在wsl中不能运行带有GUI的程序,需要安装VcXsrv来解决问题

CloudCompare编译参考的主要博客与讨论网站如下:

http://www.cloudcompare.org/doc/wiki/index.php/Compilation

https://github.com/CloudCompare/CloudCompare/blob/master/BUILD.md

https://blog.csdn.net/qq_41965957/article/details/125229654

https://blog.csdn.net/qq_34719188/article/details/98599257

https://forum.qt.io/topic/120331/qt-qpa-xcb-could-not-connect-to-display-0

https://sourceforge.net/p/vcxsrv/wiki/VcXsrv%20%26%20Win10/

https://www.cnblogs.com/chenlinchong/p/15094816.html

ls/125229654

https://blog.csdn.net/qq_34719188/article/details/98599257

https://forum.qt.io/topic/120331/qt-qpa-xcb-could-not-connect-to-display-0

https://sourceforge.net/p/vcxsrv/wiki/VcXsrv%20%26%20Win10/

https://www.cnblogs.com/chenlinchong/p/15094816.html

http://www.cloudcompare.org/doc/wiki/index.php?title=Plugins

你可能感兴趣的:(windows,qt,microsoft,c++)