libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)

libLAS 是一个用来读写三维激光雷达数据(LiDAR) 的 C++ 库。在学习、科研和研发中都会广泛运用,如何编译和配置自己所需要版本的libLAS库确是一件麻烦耗时的事情。笔者在Win7 64位系统、CMake3.0.2和VS2013编译libLAS库,在编译过程中走了一些弯路和遇到了不好问题,最终一一解决,现以博客的形式记录下来,供相关研究的同仁学习交流。
官方给的编译和安装教程中都用到了 OSGeo4W ,但由于在OSGeo4W下载各个所需库很慢,笔者将所需的各个库都在CMake下编译,博客中也是这么做的。

编译前的准备:下载库

编译libLAS库还需要Boost、GDAL、TIFF和GeoTIFF四个库的支持,所以在编译libLAS前需要将所需的各个库进行下载和编译。
因为笔者电脑中已经配置了PCL库,其中包含Boost库,故在此就不单独配置Boost。
libLAS库下载:http://www.liblas.org/download.html
GDAL库下载:http://trac.osgeo.org/gdal/wiki/DownloadSource
LibTiff库下载:http://dl.maptools.org/dl/libtiff/
Libgeotiff 库下载:ftp://ftp.remotesensing.org/pub/geotiff/libgeotiff/libgeotiff125.zip
网上有说编译libLAS库不需要GDAL、LibTIFF和Liggeotiff库的,在实际用Cmake编译时,提示需要GDAL、LibTIFF和Libgeotiff库,这三个库之间分别在各自的基础上作为其他库支撑。因此这三个库都需要编译并配置。

编译GDAL库

http://trac.osgeo.org/gdal/wiki/BuildingOnWindows
1、将目录(笔者目录E:\CPlusPlusLib)中GDAL库解压到(E:\CPlusPlusLib\gdal-1.11.0)。
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第1张图片
2、打开cmd设置VS2013 64位编译环境工具。
在cmd窗口中键入:cd /d D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64 键入: vcvars64.bat
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第2张图片
3、编译GDAL
在cmd窗口中键入:cd /d E:\CPlusPlusLib\gdal-1.11.0 键入:nmake /f makefile.vc
几分钟过后出现编译错误!这是因为默认nmake.opt文件中编译器版本和系统位数设置未进行修改。
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第3张图片
打开目录E:\CPlusPlusLib\gdal-1.11.0下的namke.opt进行如下三个位置的修改。分别作用是配置vs2013编译器,系统位数和安装位置。
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第4张图片
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第5张图片
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第6张图片
编译成功
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第7张图片
分别执行:nmake /f makefile.vc install 和nmake /f makefile.vc devinstall
等待两分钟后,GDAL就编译完成了,在目录E:\CPlusPlusLib\gdal110中有bin,data,html,lib,include几个文件夹。
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第8张图片

编译TIFF库

在cmd中分别键入:cd /d E:\CPlusPlusLib\tiff-3.8.2 nmake /f makefile.vc
这部分中方法和上部分有相似的地方,就简单描述了。注意设置VS2013 64位编译环境工具vcvars64.bat。
编译结束会出现如下错误:
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第9张图片
现在打开目录:E:\CPlusPlusLib\tiff-3.8.2\libtiff中tiffconf.h.vc进行修改,把其中的 /* #undef JPEG_SUPPORT /,/ #undef OJPEG_SUPPORT*/ 中的注释去掉。再删掉 E:\CPlusPlusLib\tiff-3.8.2\libtiff下的所有 .obj 文件。 然后再编译,这样就可以编译成功。
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第10张图片
编译成功:
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第11张图片

编译 Libgeotiff

在E:\CPlusPlusLib下创建一个目录libgeotiff,把Libgeotiff解压到E:\CPlusPlusLib\libgeotiff\下,同时在E:\CPlusPlusLib\libgeotiff\创建一个libtiff(文件夹名一定要为libtiff),再到E:\CPlusPlusLib\tiff-3.8.2\把编译好的libtiff目录复制到E:\CPlusPlusLib\libgeotiff\libtiff\下。目录结构如下:
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第12张图片
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第13张图片
在cmd中分别键入:
cd /d E:\CPlusPlusLib\libgeotiff-1.2.5
nmake /f makefile.vc
nmake /f makefile.vc install
nmake /f makefile.vc devinstall
完成之后,在C:\就会生成usr目录,里面的文件就是
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第14张图片
usr文件可以拷贝到其他目录进行使用。笔者将其放在目录:
E:\CPlusPlusLib,并重命名为:libgeotiff125待使用。

编译libLAS库

编译libLAS库需要使用到CMake和VS2013。将libLAS-1.8.0.tar.bz2直接进行解压。
打开CMake设置如下,箭头处路径要一致,不然到时候VS编译时会出错!
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第15张图片
勾选WITH_GDAL和WITH_GEOTIFF,不然构建出错!
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第16张图片
添加GDAL 、TIFF和GeoTIFF的include和lib文件:
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第17张图片
设置安装libLAS路径,默认C盘,如果不改后面会出现问题!
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第18张图片
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第19张图片

用VS2013打开E:\CPlusPlusLib\libLAS-1.8.0\libLAS.sln。
分别ALL_BUILD 和INSTALL!
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第20张图片
编译成功!
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第21张图片
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第22张图片
安装成功!
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第23张图片
下篇博客将会介绍如何在VS2013中配置libLAS库,并附上测试程序。

注意事项:用vs2010和vs2013编译方法是一样的,设置中略微有所不同,博文中已有体现。编译过程中出现错误也基本一致,下面将可能出现的错误进行说明。
安装失败!
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第24张图片
解决方法:
前期CMake中安装路径未修改!修改后从新编译libLAS库就可以。
CMakeGUI中修改或者打开cmake_install.cmake修改安装路径。

# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
  set(CMAKE_INSTALL_PREFIX "F:/libLAS")

这里写图片描述

**********回答留言朋友的问题2016/05/21!*****************
在CMakeGUI中根据自己的Boost库位置,设置Boost的相关路径为如下:
libLAS1.8.0 编译和配置(VS2013+Win7 64)(一)_第25张图片

你可能感兴趣的:(C/C++,PCL点云库)