1 准备软件
lastools源码地址,提取码:qld8;cmake下载地址,提取码:9bit。
2 使用cmake生成VS2015的工程
cmake安装过程略,cmake编译源码的方法,请自行百度学习,点击“configure”按钮,本文configure的内容如下图:
然后,依次点击“generator",“open project”,在VS community 2015中打开 LAStools解决方案,将"LASlib"工程设为启动项,接下来开始生成解决方案,编译器会提示很多以下错误:
对应代码位置如下图:
可知在第364行的“?"后缺少一个单引号,因此补上该单引号即可,如下图:
接下来继续编译,即可通过,分别编译debug和release版本。
3 获取laslib静态库
以上生成的laslib.lib位于“LAStools\LASlib\lib”目录下。
4 程序实例
使用LASlib库打开laz格式数据,在visual studio中创建控制台程序test,右键选择test->属性->配置属性->C/C++ ->常规->附加包含目录,添加如下头文件:
这里根据自己的实际路径添加即可。这两个文件位于源码中的LASlib和LASzip中。
依次点击 链接器-> 输入->附加依赖项,添加lib文件:
E:\MyDocuments\code_programs\VS_C++\LAStools-lib\LASlib\lib\Debug\LASlib-d.lib
这里要注意,需要添加与属性页面中的配置项一致的lib版本。完成以上操作后点击 确定 退出属性页面。
添加cpp文件,输入以下测试代码:
#include <iostream>
// Laslib
#include "lasreader.hpp"
int main()
{
// 点云路径
std::string file_path("E:/MyDocuments/code_programs/VS_C++/LAStools/data/lake.laz");
// 打开las文件
LASreadOpener lasreadopener;
lasreadopener.set_file_name(file_path.c_str());
LASreader* lasreader = lasreadopener.open();
size_t point_count = lasreader->header.number_of_point_records;
// 遍历点云
while (lasreader->read_point())
{
std::cout << lasreader->point.get_x() << " "
<< lasreader->point.get_y() << " "
<< lasreader->point.get_z() << std::endl;
}
// 关闭点云流
lasreader->close();
delete lasreader;
return 0;
}
结果如下:
如果使用VS community 2019 进行编译,则将VS 2015替换为VS 2019即可。
补充:VS2019编译的lib,VS2015 用不了,至于VS2015编译的库,VS2019能不能用,则没有测试,尽量用当前版本编译器编译的lib吧。