环境
本人当前使用的环境是VS2013 Ultimate Update5 + WIN10。
OSG编译安装
- 下载编译OSG源码不要克隆github上的源码,而是下载稳定版本的OSG源码进行编译。因为github上的源码处于开发阶段,我们应该优先选择稳定版本,我使用的是OpenSceneGraph-3.4.0。
- 编译OSG。OSG包含的项目很多,特别是包含了很多example项目,普通编译完成大概要3小时。如何加快编译速度,网上教程基本没有提及。这里介绍一种快速编译的方法:
按住Ctrl多选,选中需要编译的项目,右键->配置->C/C+±>多处理器编译->是(MP),debug和release都要设置,不要切换了构建配置后就忘了设置。使用多处理器编译,可以CPU利用率达到100%,编译时间大概在半小时左右。
OSGEarth编译安装
- 除了需要下载3rdParty,还需要自己编译第三方库,包括geos库,proj库,gdal库,sqlite库。
- gdal库编译过程参考文章:
gdal(集成geos+proj.4)编译(C++)C#开发版本。
为什么要自己编译GDAL?因为下载的第三方库3rdParty_VS2013_v120_x86_x64_V9_small在编译时没问题,在运行时会报错:“ERROR 6: Unable to load PROJ.4 library (proj.dll), creation of OGRCoordinate”,即找不到proj的库。按照上面的文章自己编译是最稳妥的选择。 - sqlite库编译(可选)
下载及编译的官方文档:https://www.sqlite.org/cgi/src/doc/trunk/README.md
参考CSDN文章:SQLite源代码编译为amalgamation的sqlite3.c代码
注意编译时,sqlite目录结构如下:
将Makefile.msc拷贝到bld下,运行VS2013 x86 本机工具命令提示工具,过程类似gdal库编译,使用官方文档中的命令编译即可。注意编译需要执行tcl脚本,故需要安装tcl工具。tcl工具下载链接:https://pan.baidu.com/s/1-_Ropg93Er2k3wxcJj4XeQ
启动脚本
网上多数教程在配置环境时要求设置系统环境变量,这样在正确性上没问题,但是后期部署就不是那么方便了,因为部署到新电脑还要手动设置系统环境变量,这样会显得很笨拙和麻烦。能自动处理的事情,就不要手动去做,人怕麻烦,人会出错。所以我们在配置环境变量时,使用脚本来配置,配置完启动需要启动的程序即可,被启动的程序即在设置好的环境变量中工作了。我使用的脚本如下:
osg_控制台.cmd
set OSG_ROOT_DIR=E:\Projects\OSG
set PATH=%PATH%;%OSG_ROOT_DIR%\OpenSceneGraph\build\3.4.1_VS2013\bin;%OSG_ROOT_DIR%\3rdparty\3rdParty_VS2013_v120_x86_x64_V9_small\3rdParty_x86_x64\x86\bin;%OSG_ROOT_DIR%\gwaldron-osgearth\build\vs2013\bin\Debug;E:\Projects\OSG\gwaldron-osgearth\build\vs2013\lib\Debug;%OSG_ROOT_DIR%\3rdParty\gdal202\bin;%OSG_ROOT_DIR%\3rdParty\geos-3.6.3\bin;%OSG_ROOT_DIR%\3rdParty\proj-4.9.3\bin;
set OSG_FILE_PATH=%OSG_ROOT_DIR%\data\OpenSceneGraph-Data
cmd.exe
osg_VS2013.cmd
set OSG_ROOT_DIR=E:\Projects\OSG
set PATH=%PATH%;%OSG_ROOT_DIR%\OpenSceneGraph\build\3.4.1_VS2013\bin;%OSG_ROOT_DIR%\3rdparty\3rdParty_VS2013_v120_x86_x64_V9_small\3rdParty_x86_x64\x86\bin;%OSG_ROOT_DIR%\gwaldron-osgearth\build\vs2013\bin\Debug;E:\Projects\OSG\gwaldron-osgearth\build\vs2013\lib\Debug;%OSG_ROOT_DIR%\3rdParty\gdal202\bin;%OSG_ROOT_DIR%\3rdParty\geos-3.6.3\bin;%OSG_ROOT_DIR%\3rdParty\proj-4.9.3\bin;
set OSG_FILE_PATH=%OSG_ROOT_DIR%\data\OpenSceneGraph-Data
cd “S:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE”
start devenv.exe