Windows下Cesium Terrain Builder編譯安裝指南

目的

在Windows Server2012 R2環(huán)境下編譯安裝Cesium Terrain Builder

1.依賴

GDAL
ZLIB
MSVC 2019
CMAKE

2.編譯安裝依賴
2.1.編譯安裝GDAL
因?yàn)镃esium Terrain Builder依賴GDAL,因此使用MSVC2019 編譯安裝GDAL2.4.2

1.下載GDAL2.4.2源代碼到本機(jī)后解壓縮,保證路徑?jīng)]有空格/中文或特殊字符;
2.修改nmake.opt文件,將191行附近的#WIN64=YES改為WIN64=YES,57行附近的GDAL_HOME = "C:\warmerda\bld"修改為GDAL_HOME = "C:\gdal";
3.雙擊MSVC2019的命令行工具x64 Native Tools Command Prompt for VS 2019,進(jìn)入源代碼文件夾下,輸入nmake -f makefile.vc MSVC_VER=1910 WIN64=1開始進(jìn)行編譯;
4.待編譯完成后依次輸入

nmake -f makefile.vc install
nmake -f makefile.vc devinstall

5.編譯中問(wèn)題
運(yùn)行nmake -f makefile.vc devinstall命令后發(fā)現(xiàn)安裝路徑的include,lib,html等文件夾變成文件,刪除本應(yīng)該是文件夾的相關(guān)文件,然后建立同名空文件夾,重新運(yùn)行nmake -f makefile.vc devinstall命令

2.2.配置zlib

zlib可直接下載編譯好的64位的dll文件,結(jié)合zlib源代碼中的zlib.h,zconf.h文件,將zlib.h , zconf.h , zlibwapi.dll , zlibwapi.lib放在同一文件夾中即可。

3.編譯安裝CTB
3.1.cmake配置

打開cmake gui,配置source code路徑和build路徑,勾選Advanced


配置GDAL_INCLUDE_DIR為GDAL編譯后的include文件夾,GDAL_LIBRARY為GDAL編譯后的.lib文件;
配置ZLIB_INCLUDE_DIR是zlib動(dòng)態(tài)庫(kù)所在文件夾,ZLIB_LIBRARY_DEBUG , ZLIB_LIBRARY_RELEASE是zlib的.lib文件。
配置完成后點(diǎn)擊Configure,選擇編譯平臺(tái)為MSVC2019,然后點(diǎn)擊Generate,即可在build路徑下生成MSVC2019的sln工程文件。

3.2 MSVC2019編譯

使用MSVC2019打開上一步生成的sln文件,點(diǎn)擊生成,分別在src和tool的Debug文件夾下獲得編譯成功的exe文件。

3.3 安裝CTB

新建一文件夾,將上一步生成exe文件和zlib庫(kù)放在該文件夾下,打開CMD命令行,輸入ctb-info.exe --version,若返回ctb版本號(hào),則說(shuō)明安裝成功。

20190801更新

原先安裝的Cesium Terrain Builder沒有提供生成layer.json的功能,發(fā)布Terrain切片后因?yàn)槿鄙賚ayer.json描述信息導(dǎo)致Cesium請(qǐng)求失敗,因此從ahuarte47/cesium-terrain-builder該庫(kù)下載了新的源代碼,參照以上編譯步驟進(jìn)行編譯,需要注意的是在前文步驟3.2中使用MSVC2019編譯時(shí),MSVC2019報(bào)錯(cuò)

錯(cuò)誤 **LNK2019** 無(wú)法解析的外部符號(hào) "class GDALDataset * __cdecl GDALCreateOverviewDataset(class GDALDataset *,int,int)" (?GDALCreateOverviewDataset@@YAPAVGDALDataset@[@pav1](https://github.com/pav1)@HH@Z),該符號(hào)在函數(shù) "void * __cdecl getOverviewDataset(void *,int (__cdecl*)(void *,int,int,double *,double *,double *,int *),void *)" (?getOverviewDataset@@YAPAXPAXP6AH0HHPAN11PAH@Z0@Z) 中被引用 ctb D:\cesium-terrain-builder-master-quantized-mesh\build\src\GDALTiler.obj 1

此時(shí)可將GDAL源代碼中的gdaloverviewdataset.cpp文件復(fù)制到ctb項(xiàng)目下,重新生成后即可成功編譯。
github issue上的此問(wèn)題詳情

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容