Win10系统下VisualStudio2019编译配置LAStools-v2.0.0

目录

  • 一、概述
    • 1、LAStools-v2.0.0
    • 2、下载解压
  • 二、源码编译
    • 2.1 打开
    • 2.2 移除加载失败的项目
    • 2.3 修改代码
    • 2.4 配置管理器
    • 2.5 修改输出目录
    • 2.6 修改头文件目录
    • 2.7 修改运行库
    • 2.8 生成lib
    • 2.9 lib路径
  • 三、封装成库
  • 四、VS2019配库
  • 五、测试代码
  • 六、结果展示

一、概述

1、LAStools-v2.0.0

  由于某种历史原因,LAStools库又开始更新了。最近一次更新时间为:2022年1月7日。LASTools版本为:220107。由于一些请求,现在开始使用git发布功能。LASTools在YYMMDD方案中使用版本控制。这对于大多数LASTools用户来说是很常见的,因此也保留这个版本号。此外,我们将遵循开源版本的git版本控制指南。它们也可能随后流入源代码。因为我们有一段很像历史的东西,我们直接从2.0.0版开始。

2、下载解压

github链接:https://github.com/LAStools/LAStools/releases/tag/v2.0.0

下载红框中的内容并解压
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第1张图片

二、源码编译

2.1 打开

使用VS2019打开lastools.dsw
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第2张图片
正在迁移解决方案和项目
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第3张图片
出现如下界面时,一直点确定即可。
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第4张图片

2.2 移除加载失败的项目

Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第5张图片

2.3 修改代码

打开LASlib的头文件mydefs.hpp,定位到69行,只保留 #if defined(_MSC_VER),删除或注释该行其它代码。
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第6张图片

2.4 配置管理器

配置过程如下图所示:
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第7张图片
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第8张图片

2.5 修改输出目录

右键LASlib—属性—配置属性—常规—输出目录—修改为:

$(SolutionDir)$(ProjectName)\$(Configuration)\

2.6 修改头文件目录

右键LASlib—配置属性—C/C++—常规—附加包含目录—删除“…\laszip\stl”
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第9张图片

2.7 修改运行库

右键LASlib—属性—C/C++—代码生成—运行库—选择“多线程(/MD)”。(VS2019默认是多线程/MTd,此前,open3d编译时选择的是多线程(/MD),故此处也选择多线程(/MD))
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第10张图片

2.8 生成lib

右键LASlib—重新生成。出现如下界面,则debug模式的lastools编译成功。
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第11张图片
配置release模式
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第12张图片
右键LASlib—配置属性—C/C++—常规—附加包含目录—删除“…\laszip\stl”
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第13张图片

右键LASlib—重新生成。出现如下界面,则release模式的lastools编译成功。
Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第14张图片

2.9 lib路径

...\LAStools\LAStools\LASlib\lib

Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第15张图片

三、封装成库

  1. 打开LASlib—lib新建Debug和Release文件夹,将LASlib.lib放入Release文件夹,将LASlibD.lib放入Debug文件夹。
  2. 新建文件夹LasLib,将...\LAStools\LAStools\LASlib路径下的LASlib和lib文件夹拷贝过来放入新建文件夹中。
  3. ...\LAStools\LAStools\LASzip路径下的src文件夹拷贝过来放入新建文件夹中。库封装完毕。

四、VS2019配库

本人LASlib的路径为:

D:\Open3D_0.13.0\LASlib
  1. 配置属性—C/C++—代码生成—运行库,多线程(/MT),与步骤2.7的设置保持一致。
  2. VC++目录—包含目录
D:\Open3D_0.13.0\LASlib\include
D:\Open3D_0.13.0\LASlib\src
  1. VC++目录—库目录

Release模式

D:\Open3D_0.13.0\LASlib\lib\Release

Debug模式

D:\Open3D_0.13.0\LASlib\lib\Debug
  1. 附加依赖项

Release模式

LASlib.lib

Debug模式

LASlibD.lib

五、测试代码

#include  // C++
#include "lasreader.hpp"// LasReader
#include "open3d/geometry/PointCloud.h"// Open3D 点云头文件
#include "open3d/visualization/utility/DrawGeometry.h" // Open3D 可视化头文件

using namespace std;

int main(int argc, char* argv[])
{
	// ---------------------LASLib从las文件中读取点云---------------------------
	LASreadOpener lasreadopener;
	LASreader* lasReader = lasreadopener.open("R.las");

	if (lasReader == 0)
	{
		fprintf(stderr, "ERROR: could not open lasreader\n");
	}

	printf("reading %I64d points from '%s'.\n", lasReader->npoints, lasreadopener.get_file_name());

	// ------------------------Open3D获取点云坐标------------------------------
	auto cloud = std::make_shared<open3d::geometry::PointCloud>();
	int pointAmount = lasReader->npoints; // las中点的个数
	cloud->points_.resize(pointAmount);
	
	int i = 0;
	while (lasReader->read_point() && i < pointAmount)
	{
		cloud->points_[i][0] = lasReader->point.get_X();      // 获取点云X坐标
		cloud->points_[i][1] = lasReader->point.get_Y();      // 获取点云Y坐标
		cloud->points_[i][2] = lasReader->point.get_Z();      // 获取点云Z坐标

		++i;
	}

	lasReader->close();
	delete lasReader;
	lasReader = nullptr;
	// ------------------------Open3D显示点云坐标------------------------------
	open3d::visualization::DrawGeometries({ cloud }, "PointCloud", 800, 600);

	return 0;
}

六、结果展示

reading 595018 points from 'R.las'.

Win10系统下VisualStudio2019编译配置LAStools-v2.0.0_第16张图片

你可能感兴趣的:(配库教程,github,计算机视觉,3d,c++,几何学)