CloudCompare2.12.4源码编译

一、资源下载

**说明:**此编译流程包含pdal、LasTools(LasLib)插件的编译,用于加载Las格式的点云数据,编译成功的CloudCompare可支持txt、Las格式的点云数据加载,若想加载其他格式的数据(如pcl等)请自行百度插件编译方法

1.源码下载

(1).CloudCompare-2.12.4源码

(2).CCCoreLib源码

CCCoreLib源码下载链接

(3).LasTools源码下载

LasTools源码下载

2.工具下载

工具的下载和安装流程请自行百度。

(1)CMake3.24.0

(2)Qt 5.15.2

(3)VS2017

(4)OSGeo4W

OSGeo4W用于安装PDAL库

二、准备工作

1.新建CloudCompareBuild、CloudCompareInstall,CloudCompareBuild存放编译成功的项目文件,CloudCompareInstall存放CMAKE_INSTALL_PREFIX的文件(即vs生成的exe)。
2.下载好上述三个源码,并进行解压。
在这里插入图片描述

二、LasTools编译

1.在LasTools文件夹中新建Build和Install文件夹,用于存在项目路径和VS生成的路径
在这里插入图片描述
2.打开CMake,将LasTools中的CMakeLists.txt拖到CMake界面,依次修改和点击下图位置,勾选 Grouped和勾选 Advanced:
在这里插入图片描述
3.修改Install位置为之前创建的Install文件夹:
在这里插入图片描述
4.点击Configure和Generate,成功生成LasTools的sln项目。以管理员身份运行VS2017,打开Build文件夹下的LAStools.sln
在这里插入图片描述
5.右键ALL_BUILD–重新生成,出现C2429 语言功能 “if/switch 中的 init-statement” 需要编译器标志 "/std:c++17"的错误的编码错误则双击错误提示跳到相应的位置,将if (argv[i][0] == ‘?) argv[i][0] = ‘-’;替换为if (argv[i][0]==‘x96’) argv[i][0]=’-';
在这里插入图片描述
6.其他的错误不用管(即下图的错误)
在这里插入图片描述
7.之后再次右键ALL_BUILD–重新生成,无报错信息之后右键INSTALL–重新生成,此时若出现“MSB3073 命令“setlocal”的错误也不用管。至此,Laslib的编译即完成。编译完成的文件在之前创建的Install文件夹下。
在这里插入图片描述
8.若想得到Release版本的Laslib,则在LASlib上右击选择属性,将配置改为Reease,平台改为x64,输出目录可按需要进行修改,也可以不改,然后重新生成Laslib项目即可。最好是Release和Debug的都重新生成一份,方便后续使用。
在这里插入图片描述

三、通过OSGeo4W下载PDAL并安装

参考博客:PDAL:OSGeo4W安装配置测试PDAL
不用测试,安装完成之后文件目录如下:
在这里插入图片描述

四、CloudCompare编译

1.将CCCoreLib源码解压,并将其中的全部文件复制到\CloudCompare-2.12.4\libs\qCC_db\extern\CCCoreLib下。
在这里插入图片描述
2.打开Cmake,将CloudCompare-2.12.4文件夹下的CMakeLists.txt直接拖动到CMake软件界面,更改Browse Build的路径为CloudCompareBuild文件夹,勾选 Grouped和勾选 Advanced,生成平台选择x64,点击Finish。
在这里插入图片描述
3.选择QT路径,QT路径是你自己安装的QT软件目录的路径,如下图:
在这里插入图片描述
4.设置INSTALLL路径,CMAKE_INSTALL_PREFIX的路径为CloudCompareInstall文件夹的路径
在这里插入图片描述
5.勾选QPDAL和QLAS(下图1),点击Configure。
在这里插入图片描述
提示错误之后点击确定。
在这里插入图片描述
6.选择PDAL、Laslib、LASzip的对应路径(在之前编译PDAL和Laslib时生成的路径中),如下图。之后点击Configure,无报错之后点击Generate。
在这里插入图片描述
7. 生成的项目结构如下图。之后在CloudCompareBuild目录下找到生成的CloudCompareProjects.sln项目,双击打开。
在这里插入图片描述

9.ALL_BUILD 右键 - 重新生成,等待很长一段时间,一般会出现一个生成失败,继续在INSTALL 右键 - 重新生成,生成完之后会报以下错误:
在这里插入图片描述
10.对于第一个问题,右击QLAS_FWF_IO_PLUGIN项目,属性选择下图中的目录添加包含目录(下图1)、库目录(下图2)以及附加依赖项(下图3)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
11.完成上述配置之后将配置管理器设置为Release,若下图中的hpp头文件没有红色波浪线,则说明问题已经解决,不用再去管控制台的报错。(要想在Debug下运行,更改第10步中的配置(由Release改为Debug),附加依赖项也改为Debug下的LASlib.lib)。
在这里插入图片描述
12.将CloudCompare设为启动项,右击CloudCompare项目属性,设置项目的输出路径为下图中的路径。若不设置项目输出路径则会出现若干次缺少xxx.dll文件的问题,可以在CloudCompareBuild文件夹的CloudCompare下找到这几个文件,把它们放在你原来的输出目录下即可。
在这里插入图片描述
13.运行CloudCompare,添加las数据即可。

五、可能出现的问题:

①由Debug切换到Release生成后,提示缺少xxx.dll的问题,包括缺少与QT和CloudCompare的相关dll,对于缺少的QT的dll,只需要在qt安装目录的bin文件夹下去复制到Release文件夹(下图1),对于缺少的与CloudCompare相关的dll,只需要在CloudCompareBuild–libs下对应文件夹位置去复制到Release文件夹中即可(下图2),最后再将qt安装目录的与bin同级的plugins文件夹整体复制到Release文件夹中,在VS中点击本地Windows调试器运行。Release切换到Debug生成后,提示缺少xxx.dll的问题解决办法与上述类似。
若想要在Release或Debug下运行CCViewer也出现上述问题,也同样将缺少的dll放到对应的目录即可。
在这里插入图片描述
在这里插入图片描述
②问题:编译QPDAL_IO_PLUGIN插件时,LASFilter.cpp的 canSave 的152行出现了错误:“error C2666: operator 12个重载有相似的转换”。解决办法:将“if (type = =CC_TYPES::POINT_CLOUD)”改为“if (type = = (int64_t)CC_TYPES::POINT_CLOUD)”即可。
③Qt5.12编译报错E2512 功能测试宏的参数必须是简单标识符。解决方法:将 生成+IntelliSense 更改为 仅生成
在这里插入图片描述
或者参照https://blog.csdn.net/dfy1407/article/details/103922415解决
④出现无法启动程序,拒绝访问的问题。解决方法:把需要运行出结果的那个项目右击设置为启动项目。参照:https://blog.csdn.net/weixin_51229250/article/details/120628048
⑤出现This application failed to start because no Qt platform plugin could be initialized问题,请参考链接:
https://cloud.tencent.com/developer/article/1760090
⑥PDAL generic exception:bad allocation的问题,解决办法:QLAS和PDAL读取Las数据的版本不同,CMake时选择QLAS和PDAL即可。
⑦编译了PDAL库,还是不能加载las数据:
在这里插入图片描述
将pdal_util.dll和pdalcpp.dll所在的文件夹路径添加到计算机系统变量Path中,再重启计算机。参照https://blog.csdn.net/NEXUS666/article/details/110948368
⑧CMake编译的VS工程,安装时遇到错误:error MSB3073: 命令“setlocal:参考:https://www.cnblogs.com/arxive/p/11863643.html

六、编译流程参考链接:

①https://blog.csdn.net/ahhxxttxs/article/details/122785170
②https://blog.csdn.net/qq_43144751/article/details/119675727
③https://blog.csdn.net/weixin_42756665/article/details/97239813#comments_18490226(这篇文章建议仔细阅读并进行理解,对解决将laszip附加到CloudCompare项目中有很大帮助)。
④https://blog.csdn.net/qq_33656619/article/details/105208473
⑤https://blog.csdn.net/xinjiang666/article/details/104878678
⑥https://blog.csdn.net/qq_34719188/article/details/98599257

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
log4j-1.2-api-2.12.4是Apache Log4j项目的一个版本,它是一个功能强大、灵活且可靠的日志记录工具。该版本是基于log4j 1.2.x系列,它提供了一套API,用于简化并统一Java应用程序的日志记录操作。 log4j-1.2-api-2.12.4在实现日志记录时,采用了层次化的结构,通过定义不同的Logger和Appender来实现灵活的日志记录方式。Logger用于指定在应用程序中生成日志的位置,Appender则用来指定日志的输出方式,比如可以将日志输出到控制台、文件、数据库等。同时,它还提供了丰富的日志级别,帮助开发人员在不同的场景下记录不同级别的日志,从而更好地进行程序调试和故障排查。 log4j-1.2-api-2.12.4具有高度的可配置性,通过配置文件可以对日志记录的各个方面进行灵活的调整,比如可以设置输出格式、日志文件的大小和数量、日志的滚动策略等等。这样,开发人员可以根据具体需求来定制日志记录的行为,从而更好地满足应用程序的需求。 除此之外,log4j-1.2-api-2.12.4还提供了对多线程环境下的日志记录的支持,它在实现细节上进行了优化,保证了高并发场景下的日志记录性能和可靠性。 总之,log4j-1.2-api-2.12.4是一个强大的日志记录工具,它提供了丰富的功能和灵活的配置方式,使得开发人员可以更加方便地记录和管理应用程序的日志信息。它的稳定性、可靠性和高性能也为应用程序的开发和运维提供了有力支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D_Mei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值