Windows下Cesium Terrain Builder编译安装指南

目的

在Windows Server2012 R2环境下编译安装Cesium Terrain Builder

1.依赖

GDAL
ZLIB
MSVC 2019
CMAKE

2.编译安装依赖
2.1.编译安装GDAL
因为Cesium Terrain Builder依赖GDAL,因此使用MSVC2019 编译安装GDAL2.4.2

1.下载GDAL2.4.2源代码到本机后解压缩,保证路径没有空格/中文或特殊字符;
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,进入源代码文件夹下,输入nmake -f makefile.vc MSVC_VER=1910 WIN64=1开始进行编译;
4.待编译完成后依次输入

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

5.编译中问题
运行nmake -f makefile.vc devinstall命令后发现安装路径的include,lib,html等文件夹变成文件,删除本应该是文件夹的相关文件,然后建立同名空文件夹,重新运行nmake -f makefile.vc devinstall命令

2.2.配置zlib

zlib可直接下载编译好的64位的dll文件,结合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动态库所在文件夹,ZLIB_LIBRARY_DEBUG , ZLIB_LIBRARY_RELEASE是zlib的.lib文件。
配置完成后点击Configure,选择编译平台为MSVC2019,然后点击Generate,即可在build路径下生成MSVC2019的sln工程文件。

3.2 MSVC2019编译

使用MSVC2019打开上一步生成的sln文件,点击生成,分别在src和tool的Debug文件夹下获得编译成功的exe文件。

3.3 安装CTB

新建一文件夹,将上一步生成exe文件和zlib库放在该文件夹下,打开CMD命令行,输入ctb-info.exe --version,若返回ctb版本号,则说明安装成功。

20190801更新

原先安装的Cesium Terrain Builder没有提供生成layer.json的功能,发布Terrain切片后因为缺少layer.json描述信息导致Cesium请求失败,因此从ahuarte47/cesium-terrain-builder该库下载了新的源代码,参照以上编译步骤进行编译,需要注意的是在前文步骤3.2中使用MSVC2019编译时,MSVC2019报错

错误 **LNK2019** 无法解析的外部符号 "class GDALDataset * __cdecl GDALCreateOverviewDataset(class GDALDataset *,int,int)" (?GDALCreateOverviewDataset@@YAPAVGDALDataset@[@pav1](https://github.com/pav1)@HH@Z),该符号在函数 "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

此时可将GDAL源代码中的gdaloverviewdataset.cpp文件复制到ctb项目下,重新生成后即可成功编译。
github issue上的此问题详情

你可能感兴趣的:(Windows下Cesium Terrain Builder编译安装指南)