天天看點

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)(一)

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)(一)

3、編譯GDAL

在cmd窗體中鍵入:cd /d E:\CPlusPlusLib\gdal-1.11.0 鍵入:nmake /f makefile.vc

幾分鐘過後出現編譯錯誤!這是由于預設nmake.opt檔案裡編譯器版本号和系統位數設定未進行改動。

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

打開檔案夾E:\CPlusPlusLib\gdal-1.11.0下的namke.opt進行例如以下三個位置的改動。分别作用是配置vs2013編譯器,系統位數和安裝位置。

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)
libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)
libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

編譯成功

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

分别運作: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)(一)

編譯TIFF庫

在cmd中分别鍵入:cd /d E:\CPlusPlusLib\tiff-3.8.2 nmake /f makefile.vc

這部分中方法和上部分有類似的地方,就簡單描寫叙述了。

注意設定VS2013 64位編譯環境工具vcvars64.bat。

編譯結束會出現例如以下錯誤:

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

如今打開檔案夾: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)(一)

編譯成功:

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

編譯 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)(一)
libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

在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)(一)

usr檔案能夠複制到其它檔案夾進行使用。筆者将其放在檔案夾:

E:\CPlusPlusLib,并重命名為:libgeotiff125待使用。

編譯libLAS庫

編譯libLAS庫須要使用到CMake和VS2013。将libLAS-1.8.0.tar.bz2直接進行解壓。

打開CMake設定例如以下,箭頭處路徑要一緻,不然到時候VS編譯時會出錯!

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

勾選WITH_GDAL和WITH_GEOTIFF,不然建構出錯!

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

加入GDAL 、TIFF和GeoTIFF的include和lib檔案:

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

設定安裝libLAS路徑,預設C槽,假設不改後面會出現故障!

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)
libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

用VS2013打開E:\CPlusPlusLib\libLAS-1.8.0\libLAS.sln。

分别ALL_BUILD 和INSTALL!

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

編譯成功!

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)
libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

成功安裝。

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

下篇部落格将會介紹怎樣在VS2013中配置libLAS庫,并附上測試程式。

注意事項:用vs2010和vs2013編譯方法是一樣的,設定中稍微有所不同,博文中已有展現。編譯過程中出現錯誤也基本一緻,以下将可能出現的錯誤進行說明。

安裝失敗!

libLAS1.8.0 編譯和配置(VS2013+Win7 64)(一)

解決方法:

前期CMake中安裝路徑未改動!

改動後從新編譯libLAS庫就能夠。

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