一、libLAS与LASlib(with LASzip)简概
(一)libLAS简概
libLAS是一个用于读取和写入以ASPRS激光(LAS)文件格式(版本 1.0、1.1 和 1.2)编码的地理空间数据的库。LAS 格式数据是一种顺序二进制格式,其在激光雷达处理操作中被广泛使用[1]。
自2018年来,libLAS项目由PDAL项目替代接续,LAS或LAZ 1.4版本数据存取处理仅由PDAL支持,相关简述可见参考资料[2]。现如今,直接编译libLAS源码进行开发的情况很少。

(二)LASlib(with LASzip)简概
LASlib(with LASzip)是一个针对LAS标准格式存储或LAZ压缩格式(1.0-1.3)存储的激光雷达点云数据读写的C++编程API。LASlib包含了独立的LASzip压缩库,以为LAS标准格式数据提供无损压缩与解压。LASlib(with LASzip)具有使用简单、轻量级并且处理速度快的优势[3]。
LAStools工具包含完整的LASlib(with LASzip)发布库[4]。

二、下载安装过程
(一)libLAS下载配置
libLAS库的源码下载编译可参考资料[5-7],libLAS源码及其相关依赖库均可以在OSGeo4W上下载。基于博主的编译血泪史(基于VS2019编译该库存在大量的报错,涉及无法识别源码的不规范重载、工具库无法打开等),建议放弃直接编译该库,转向PDAL和LASlib的使用。
(二)LASlib(with LASzip)下载配置
LASlib的下载编译与环境配置可参考资料[8],编译LAStools源码可以得到LASlib库文件(包含头文件和静态库文件)。
①LAStools源码下载(参考资料/*5*/)
编译成功的下载网址:Index of /~isenburg/lastools/download (unc.edu)
基于Github提供的源码进行编译,会产生如下编译错误(博主未解决相关问题)。
②LAStools编译与环境配置(参考资料[8]/*5*/)
参考资料[8]可知,编译debug/release双版本的LASlib静态链接库需要对LASlib项目进行常规属性的配置设置(即配置输出目录和目标文件名)。实际上,编译文件已经做好相关配置了,该步骤可略过。
参考资料[8]可知,项目环境配置分别包含了LASlib(位于LASlib/inc)和LASzip(位于LASzip/src)的独立头文件。实际上,在经过编译后的install文件夹里的include文件夹已经包含了LASlib和LASzip的所有头文件,可直接包含。
其余步骤与参考资料[8]一致。
编译生成步骤补充(下述步骤独立顺序进行,debug/release相同):
Ⅰ 将解决方案里的ALL_BUILD、INSTALL属性的配置(debug或release)和平台设置(x64)与编程界面的配置和平台设置一致;
Ⅱ 依次右键ALL_BUILD、INSTALL并选择生成(或重新生成),编译后的静态链接库文件位于自己创建的install文件夹下。

注意事项:
在基于Github提供的源码进行编译会产生较多编译错误,无论是libLAS还是LASlib。二者在基于Github源码编译都会出现“LNK1104 无法打开文件’..\bin\Debug\xxx.lib‘”等报错。
因此,源码下载参考资料/*5*/。
③LASlib测试Demo
项目配置好以后(包含头文件夹/包含库文件夹/添加依赖库.lib) ,本地调试会出现下述报错。报错原因:代码使用标记为“已弃用”的函数、类成员、变量或 typedef。 符号是使用 __declspec(deprecated) 修饰符或 C++14 [[deprecated]] 属性弃用的。
两种解决办法/**1**/:
Ⅰ 在代码文件首行加入#pragma warning(disable : 4996),以在文件中针对随后的所有内容关闭警告。
Ⅱ 在“项目配置属性->C/C++->高级”中的“禁用特定警告”属性添加4996,最后确定以应用更改。
成功测试结果:
参考资料:
[1] https://en.wikipedia.org/wiki/LibLAS
[2] 三维点云处理(C++)学习记录——PDAL_c++ pdal-CSDN博客
[3] LAStools/LASlib at master · LAStools/LAStools (github.com)
[5] libLAS1.8.0 编译和配置(转)_liblas编译-CSDN博客
[7] Installing libLAS using OSGeo4W — liblas.org
[8]
【点云】使用VS2019编译与配置LASlib(LAStools)-CSDN博客
重点参考资料:
/*1*/ home - rapidlasso GmbH
/*2*/ LAStools reference documentation — LAStools documentation (rapidlasso.de)
/*3*/ LASzip - rapidlasso GmbH
/*4*/ LAStools - YouTube
/*5*/ Index of /~isenburg/lastools/download