cmake 3.17 + VS Community 2015 + win10编译LasTools源码(LASlib库)

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和laszip静态库

  以上生成的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吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章