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)。

2、打開cmd設定VS2013 64位編譯環境工具。
在cmd窗體中鍵入:cd /d D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64 鍵入: vcvars64.bat
3、編譯GDAL
在cmd窗體中鍵入:cd /d E:\CPlusPlusLib\gdal-1.11.0 鍵入:nmake /f makefile.vc
幾分鐘過後出現編譯錯誤!這是由于預設nmake.opt檔案裡編譯器版本号和系統位數設定未進行改動。
打開檔案夾E:\CPlusPlusLib\gdal-1.11.0下的namke.opt進行例如以下三個位置的改動。分别作用是配置vs2013編譯器,系統位數和安裝位置。
編譯成功
分别運作:nmake /f makefile.vc install 和nmake /f makefile.vc devinstall
等待兩分鐘後。GDAL就編譯完畢了,在檔案夾E:\CPlusPlusLib\gdal110中有bin,data,html,lib,include幾個檔案夾。
編譯TIFF庫
在cmd中分别鍵入:cd /d E:\CPlusPlusLib\tiff-3.8.2 nmake /f makefile.vc
這部分中方法和上部分有類似的地方,就簡單描寫叙述了。
注意設定VS2013 64位編譯環境工具vcvars64.bat。
編譯結束會出現例如以下錯誤:
如今打開檔案夾:E:\CPlusPlusLib\tiff-3.8.2\libtiff中tiffconf.h.vc進行改動,把當中的 /* #undef JPEG_SUPPORT /,/ #undef OJPEG_SUPPORT*/ 中的凝視去掉。再删掉 E:\CPlusPlusLib\tiff-3.8.2\libtiff下的全部 .obj 檔案。
然後再編譯。這樣就能夠編譯成功。
編譯成功:
編譯 Libgeotiff
在E:\CPlusPlusLib下建立一個檔案夾libgeotiff,把Libgeotiff解壓到E:\CPlusPlusLib\libgeotiff\下。同一時候在E:\CPlusPlusLib\libgeotiff\建立一個libtiff(檔案夾名一定要為libtiff),再到E:\CPlusPlusLib\tiff-3.8.2\把編譯好的libtiff檔案夾複制到E:\CPlusPlusLib\libgeotiff\libtiff\下。檔案夾結構例如以下:
在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檔案夾,裡面的檔案就是
usr檔案能夠複制到其它檔案夾進行使用。筆者将其放在檔案夾:
E:\CPlusPlusLib,并重命名為:libgeotiff125待使用。
編譯libLAS庫
編譯libLAS庫須要使用到CMake和VS2013。将libLAS-1.8.0.tar.bz2直接進行解壓。
打開CMake設定例如以下,箭頭處路徑要一緻,不然到時候VS編譯時會出錯!
勾選WITH_GDAL和WITH_GEOTIFF,不然建構出錯!
加入GDAL 、TIFF和GeoTIFF的include和lib檔案:
設定安裝libLAS路徑,預設C槽,假設不改後面會出現故障!
用VS2013打開E:\CPlusPlusLib\libLAS-1.8.0\libLAS.sln。
分别ALL_BUILD 和INSTALL!
編譯成功!
成功安裝。
下篇部落格将會介紹怎樣在VS2013中配置libLAS庫,并附上測試程式。
注意事項:用vs2010和vs2013編譯方法是一樣的,設定中稍微有所不同,博文中已有展現。編譯過程中出現錯誤也基本一緻,以下将可能出現的錯誤進行說明。
安裝失敗!
解決方法:
前期CMake中安裝路徑未改動!
改動後從新編譯libLAS庫就能夠。
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "F:/libLAS")