本文记录了 LAStools 的编译安装过程,主要希望得到 LASlib 的静态库,这样就可以在程序中调用 LASlib 里面的函数了
源码下载
LAStools的Github:https://github.com/LAStools/LAStools
下载地址:https://www.cs.unc.edu/~isenburg/lastools/
可以直接点击这个地址进行下载:https://www.cs.unc.edu/~isenburg/lastools/download/LAStools.zip
在 LAStools 的 Github 上面提供了一个下载地址,提供了供编译的源码,但我没有试过,我下载的是我提供的下载地址的版本,也是官网的。
下载地址打开以后,一段时间不操作,会自动跳转到最新的官网网站
编译与生成
解压缩我们下载的文件,并在里面添加两个目录:
- build
- install
如下图所示:
打开CMake GUI,设置两个内容:
- Where is the source code:设置为源码的目录
- Where to build the binaries:设置为我们创建的build目录
设置好以后,点击Configure
设置CMAKE_INSTALL_PREFIX,用于指定我们的输出目录,这个地方就设置为我们创建的install目录
设置好以后,点击Generate
点击Open Project:
解决方案如下:
右击ALL_BUILD,选择重新生成
等待一会,会遇到很多报错,选择**“代码”,找到C2429报错**
双击每个C2429报错(双击时会有弹框,点击确定即可),将里面的代码改为下面的内容:
// before
if (argv[i][0] == '?) argv[i][0] = '-';
// after
if (argv[i][0] == 'x96') argv[i][0] = '-';
将所有这个C2429报错修改完以后,右击ALL_BUILD,重新生成:
再右键点击INSTALL,重新生成
生成以后,这个错误可以无视:
此时我们在install目录下可以看到两个文件:
我们在项目列表中,找到LASlib,右击->属性,我们要挨个配置Debug和Release
需要修改输出目录和目标文件名(此处我的路径仅供参考)
Debug:
Release:
修改好以后,我们的静态库文件就已经生成好了
我们现在可以搭建我们的LAStools第三方库了
目录结构如下:
- lastools
- include
- LASlib
- inc
- LASzip
- src
- LASlib
- lib
- Debug
- LASlib_d.lib
- Release
- LASlib.lib
- Debug
- include
在这个目录结构中,LASlib/inc和LASzip/src来自我们最开始解压的文件里:
测试
打开需要配置LASlib的项目
设置属性->通用属性->VC++目录:
设置包含目录:
设置库目录:
链接器->输入->附加依赖项:
测试代码:
#include <iostream>
#include <lasreader.hpp>
#include <laswriter.hpp>
int main()
{
std::string path = "E:/data/test.las";
LASreadOpener lasLoad;
lasLoad.set_file_name(path.c_str());
LASreader* lasReader = lasLoad.open();
uint32_t ptCount = lasReader->header.number_of_point_records;
std::cout << "->加载las点云的点数为:" << ptCount << std::endl;
return 0;
}
如果能正确输出点数,代表正常读入,也代表我们的库配置成功