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环境变量配置:

在PATH中添加:

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

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

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

  1. 在vs中打开

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

  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目录

    2.2、选择vs2022生成

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

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

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

    如:

  • 以及添加编译的一些插件:PDAL,PCL,LAS

  • 插件找不到的报错:

  • 继续点击configure(虽然有一些warning),最后成功"全白",点击Generate生成(如何继续报错,按照上面的查询解决问题即可),open the project,会在vs2022中打开,下图是我的整个配置图,仅供参考(哪里错查哪里,然后再慢慢解决即可)!
  1. 在vs2022中进行build,install,按照图中进行操作

  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. 最后你会发现还是不能运行,编译成功了但是运行错误

# 可以使用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图标是灰色

  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

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

  1. java8编译_为什么在Java7中编译而在Java8中编译?

    泛型是棘手的. 看起来它们在不同版本的 Java中被区别对待. 此代码在Java 7中成功编译,无法使用Java 8进行编译. import java.util.EnumSet; public cla ...

  2. vlc android 编译 mac,在Mac中编译vlc-android小结

    在Mac中编译vlc-android小结 在Mac中编译vlc-android小结 VLC  CodeSource https://code.videolan.org/explore This pag ...

  3. scala 编译插件_使用Scala插件在Griffon应用程序中编译和运行Scala代码

    scala 编译插件 用于Griffon的Scala插件 0.7.1版本现已发布. 这个插件可以在Griffon应用程序上编译和运行Scala代码. Scala插件使用LangBridge插件与其他J ...

  4. 在window10 WSL 中编译 OpenJDK13

    简介 最新的OpenJDK13已经发布到git上,可以git pull,然后编译了. 这里介绍了直接在windows 10 的WSL环境中进行build并测试. 准备 在Open JDK13的网站文档 ...

  5. windows下写代码在linux下编译,如何在Windows中编译Linux Unix的代码(采用cygwin)?...

    很多经典算法往往是用C++在linux下实现的,对长期从事windows开发的辛苦大众来说,想看这些算法的运行效果不得不费一点小功夫.今天捣鼓了一晚上才搞定这事,写出实现方法和大家共享. 第一步:下载 ...

  6. ultraedit编译java_在UltraEdit中编译和运行Java程序

    一.首先打开UltraEdit, 点击菜单上的 高级->工具配置,如图: 1 点击插入: 2 在菜单项名称写上该功能,"编译java ": 3 创建一个批处理的文件compi ...

  7. 在C 编程语言中 静态数组的替代模板,以编译方式在C ++中编译时创建静态数组...

    您可以获得的最接近的是使用C ++ 0x功能从可变参数模板参数列表初始化模板的本地或成员数组. 这当然受到最大模板实例化深度的限制,并且必须测量实际上在您的情况下显着差异. 例: template s ...

  8. cloudcompare2.12.4编译全过程

    ** Cloudcompare2.12.4使用vs2019带插件编译 **Cloudcompare开发环境搭建 安装需要: windows上编译需要:vs2019.qt5.15.2 (msvc)//q ...

  9. 【Android Protobuf 序列化】Protobuf 使用 ( protobuf-gradle-plugin 插件简介 | Android Studio 中配置插件 | AS 中编译源文件 )

    文章目录 一.protobuf-gradle-plugin 插件简介 二.Android Studio 中配置 protobuf-gradle-plugin 插件 三.Android Studio 中 ...

  10. 安装包没意思?带你手动下载OpenWrt源码编译安装!

    一.OpenWrt的代码管理工具 OpenWrt社区同时使用Subversion和Git两种工具来管理代码. 备注:OpenWrt的外围代码已经逐渐转到github提供的Git托管空间上,直到2016 ...

最新文章

  1. 微服务化小团队集群的组织和管理
  2. 聊一聊IAR的workspace文件组织
  3. azdb文件怎么打开_AZDBMappingSvcs.dll
  4. 低功耗广域网:关键特性
  5. 栈溢出笔记1.4 黑掉example_2
  6. onclick的值传给php,php – 从onclick事件将HTML属性传递给jQuery函数
  7. 【二分图】【最大匹配】【匈牙利算法】CODEVS 2776 寻找代表元
  8. [FreeProxy]FreeProxy代理服务器端软件介绍 之一
  9. 软件测试中什么是正交分析法,软件测试用例设计方法之正交分析法
  10. 前端50个精美登录注册模板
  11. 云计算机ppt模板,云服务云技术云计算PPT模板
  12. python批量.bmp文件转换为.jpg
  13. JAVA计算两条直线的交点(判断两条线段相交)
  14. 奥维查看行政边界_全国乡镇行政区划数据乡镇边界数据查询获取方式
  15. 改变ubuntu终端显示语言(桌面系统是中文,终端提示是英文)
  16. PMPtiku项目管理第六版PMI人才三角
  17. Actions as Moving Points
  18. 【读点论文】Detect Faces Efficiently: A Survey and Evaluations,关于人脸检测的思考,综述型文章
  19. 微信小程序开发 | 小程序开发框架
  20. 几款H264码流分析工具

热门文章

  1. kalman滤波理解一:理论框架
  2. 计算机word题目设置标题,word文档标题怎么设置?word设置标题样式的方法
  3. 基于opencv的手眼标定算法详解一-----------opencv之相机标定函数calibrateCamera()介绍
  4. 测试人员应该具备的几种思维
  5. mysql skip-grant-tables my.cnf_使用SKIP-GRANT-TABLES解决MYSQLROOT密码丢失
  6. Telink 825x 蓝牙开发笔记2
  7. 从阿里云故障说 Io hang 是什么?
  8. 用C# 设置excel单元格格式
  9. 一:细说python3中sort和sorted
  10. Vue3 script setup