1. 依赖
OSGEarth的编译还是比较简单的,首先是要获取编译的依赖。
1) OpenSceneGraph
OSGEarth是OpenSceneGraph扩展库,编译过程可以参看我的另一篇文章:Win64下编译OSG详细过程(Win10 VS2015 OSG3.6.3)。
2) GDAL
通用的用于读写空间数据的一套跨平台开源库,OSGEarth很多对于空间数据的支持就是GDAL实现的。编译过程:Win64下编译集成GEOS和Proj4的GDAL。
3) CURL
网络文件传输库,跟在线地图服务相关。同时它也是OpenSceneGraph的第三方依赖库,直接拿过来用就可以了。
4) GEOS
GEOS是一个集合形状的拓扑关系操作实用库。osgEarth使用GEOS执行像缓冲和交叉这样的几何操作。虽然它是可选的依赖库,为了使用完整的矢量要素功能,建议加上这个类库。编译过程:VS2015编译GEOS的debug和release版本。
5) 其他
在官方的编译帮助文档里面还提到了SQLite和QT。SQLite应该是使用某些数据库文件的时候才用到,适用范围应该较小。而现在的版本应该也不用依赖QT组件,反正我是没有看到编译参数的,需要在QT中使用osgEarth的话,可以使用osgQT。
2. 编译
1) 设置参数
打开CMake,在“Where is the source code”填写源代码目录,在“Where to build the binaries”填写工程构建目录,然后点击“Configure”,如下图所示:
注意在第一次“Configure”的时候会让你选择编译器,我这里选择的是VS2015的X64编译器。
2) 配置路径
第一次配置一般是不成功的,会提示缺少依赖库。这个时候可以把依赖的路径依次填入,重新“Configure”就可以了。我这边的填写的路径参考如下:
OSG有非常多的子类库,所以如果自己一个个填写的话非常麻烦。这里有个快速办法,首先按照如下图方式组织文件夹C,将头文件都放入到include子文件中,lib文件放入到lib子文件夹里面(debug和release都可以)。然后填写文件夹C到OSG_DIR编译项,最后再次“Configure”,就可以帮你自动识别了相关的路径了。
3) 生成编译
配置过程可以边填写边“Configure”,直到最后不再提示缺少相应的依赖库。如下图所示,提示“configuring done”(提示的警告和缺失组件不是必须)。
然后点击“Generate”,生成VS项目工程,点击“Open Project”打开项目工程。最后在VS生成解决方案,等待编译完成就可以了。
3. 参考文献
- Building osgEarth
- osgearth编译全过程