当前位置:网站首页>Visualstudio2019 compilation configuration lastools-v2.0.0 under win10 system

Visualstudio2019 compilation configuration lastools-v2.0.0 under win10 system

2022-07-06 01:50:00 Dianyunxia

One 、 summary

1、LAStools-v2.0.0

   For some historical reason ,LAStools The library is updated again . Last updated on :2022 year 1 month 7 Japan .LASTools Version is :220107. Due to some requests , Now let's use git Release the function .LASTools stay YYMMDD Version control is used in the scheme . This is for most LASTools It is very common for users , So keep this version number . Besides , We will follow the open source version git Version control guide . They may also flow into the source code later . Because we have something very similar to history , We directly from 2.0.0 edition Start .

2、 Download decompression

github link :https://github.com/LAStools/LAStools/releases/tag/v2.0.0

Download the contents in the red box and unzip
 Insert picture description here

Two 、 Source code compilation

2.1 open

Use VS2019 open lastools.dsw
 Insert picture description here
Migrating solutions and projects
 Insert picture description here
When the following interface appears , Just click ok .
 Insert picture description here

2.2 Remove the items that failed to load

 Insert picture description here

2.3 Modify the code

open LASlib The header file mydefs.hpp, Locate the 69 That's ok , Only keep #if defined(_MSC_VER), Delete or comment other code in this line .
 Insert picture description here

2.4 Configuration manager

The configuration process is shown in the figure below :
 Insert picture description here
 Insert picture description here

2.5 Modify the output directory

Right click LASlib— attribute — Configuration properties — routine — The output directory — It is amended as follows :

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

2.6 Modify the header file directory

Right click LASlib— Configuration properties —C/C++— routine — Attach include directory — Delete “…\laszip\stl”
 Insert picture description here

2.7 Modify the runtime

Right click LASlib— attribute —C/C++— Code generation — Runtime — choice “ Multithreading (/MD)”.(VS2019 The default is multithreading /MTd, before ,open3d When compiling, you choose Multithreading (/MD), Therefore, multi threading is also selected here (/MD))
 Insert picture description here

2.8 Generate lib

Right click LASlib— To regenerate the . The following interface appears , be debug Mode lastools Compile successfully .
 Insert picture description here
To configure release Pattern
 Insert picture description here
Right click LASlib— Configuration properties —C/C++— routine — Attach include directory — Delete “…\laszip\stl”
 Insert picture description here

Right click LASlib— To regenerate the . The following interface appears , be release Mode lastools Compile successfully .
 Insert picture description here

2.9 lib route

...\LAStools\LAStools\LASlib\lib

 Insert picture description here

3、 ... and 、 Package into Library

  1. open LASlib—lib newly build Debug and Release Folder , take LASlib.lib Put in Release Folder , take LASlibD.lib Put in Debug Folder .
  2. New folder LasLib, take ...\LAStools\LAStools\LASlib The next path LASlib and lib Copy the folder and put it into the new folder .
  3. take ...\LAStools\LAStools\LASzip The next path src Copy the folder and put it into the new folder . Library encapsulation completed .

Four 、VS2019 Distribution Library

I am LASlib The path of is :

D:\Open3D_0.13.0\LASlib
  1. Configuration properties —C/C++— Code generation — Runtime , Multithreading (/MT), And steps 2.7 The settings are consistent .
  2. VC++ Catalog — Contains the directory
D:\Open3D_0.13.0\LASlib\include
D:\Open3D_0.13.0\LASlib\src
  1. VC++ Catalog — The library catalog

Release Pattern

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

Debug Pattern

D:\Open3D_0.13.0\LASlib\lib\Debug
  1. Additional dependency

Release Pattern

LASlib.lib

Debug Pattern

LASlibD.lib

5、 ... and 、 Test code

#include <iostream> // C++
#include "lasreader.hpp"// LasReader
#include "open3d/geometry/PointCloud.h"// Open3D  Point cloud file 
#include "open3d/visualization/utility/DrawGeometry.h" // Open3D  Visualization header file 

using namespace std;

int main(int argc, char* argv[])
{
    
	// ---------------------LASLib from las Read the point cloud in the file ---------------------------
	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 Get point cloud coordinates ------------------------------
	auto cloud = std::make_shared<open3d::geometry::PointCloud>();
	int pointAmount = lasReader->npoints; // las The number of midpoint 
	cloud->points_.resize(pointAmount);
	
	int i = 0;
	while (lasReader->read_point() && i < pointAmount)
	{
    
		cloud->points_[i][0] = lasReader->point.get_X();      //  Get point cloud X coordinate 
		cloud->points_[i][1] = lasReader->point.get_Y();      //  Get point cloud Y coordinate 
		cloud->points_[i][2] = lasReader->point.get_Z();      //  Get point cloud Z coordinate 

		++i;
	}
	// ------------------------Open3D Display point cloud coordinates ------------------------------
	open3d::visualization::DrawGeometries({
     cloud }, "PointCloud", 800, 600);

	return 0;
}

6、 ... and 、 Result display

reading 595018 points from 'R.las'.

 Insert picture description here

原网站

版权声明
本文为[Dianyunxia]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140106267821.html