用编译好的liblas库配置vs2017工程
程序员文章站
2024-01-23 21:56:52
...
拿到了已经编译好的liblas库和boost库,共有如下几个文件夹:boost,laszip,lib,liblas,共同放在las根目录下。我把laszip和liblas里的绝大部分头文件放在了新建的同级include文件夹下,该文件夹和las文件夹共同作为工程的包含文件夹。
把las也放进包含目录是因为这些头文件里的包含通常是从las文件夹下开始搜寻的。
las/lib作为工程的库文件目录,但是由于编译器版本的原因,别人编译好的库我并不能直接用。于是需要自己重新编译boost,并把这些lib文件替换为对应自己编译器版本的文件。
编译boost。在官网https://www.boost.org/下载源码,这里下载的是1.73.0版本,解压后用vs2017命令行工具运行bootstrap.bat,随后运行b2.exe。编译成功后会提示success,并提示可以用…/boost_1_73_0作为包含目录,用…/boost_1_73_0/stage/lib作为库目录。
随后用这个lib里的响应文件替换掉之前别人编译好的库里的lib。
工程的库目录设置为:
运行示例程序发现缺少各种dll。把VGIS和VRM安装包里的所有dll打包过来放进工程目录里,可以运行成功。
#include "stdafx.h"
#include <iostream>
#include <liblas.hpp>
#include <fstream>
#include <string>
using namespace std;
using namespace boost;
int main()
{
ifstream ifs;
ifs.open("E:\\Livox\\lasFiles\\tt2.las", std::ios::in | std::ios::binary);
liblas::ReaderFactory f;
liblas::Reader reader = f.CreateWithStream(ifs);
liblas::Header const& header = reader.GetHeader();
cout << header.GetPointRecordsCount() << endl;
getchar();
return 0;
}