osgEarth编译(转载)

时间:2021-07-17 17:05:41

osgEarth编译

osgEarth的编译需要osg和一些第三方插件库,我主要参考了cnblogs上的一篇博文,但是也不够详细,并且我是在已经编译好osg的情况下去编译osgEarth,所以期间也遇到了一些问题,下面我详细说明:

  • 注意:首先需要你编译所有插件和osg的,以及osgEarth的都要使用同一个VS平台,下面的编译均是在VS2008 sp1环境下进行的
  • 准备工作(参考缑城浪子博客)

    下载所需要的插件和库包括:

    下载: http://osgearth.org/wiki/Downloads

    CURL (curl-7.21.7.tar.gz): http://curl.haxx.se/download.html

    GDAL(gdal-1.8.0.tar.gz):http://trac.osgeo.org/gdal/wiki/DownloadSource

    GEOS(geos-3.2.2.tar.bz2):http://trac.osgeo.org/geos/

    exe文件:http://files.cnblogs.com/eaglezhao/expat-win32bin-2.0.1.rar

    libzip(libzip-windows.zip): code:http://nih.at/libzip/

    编译好的包供下载:

    vs2008: http://wush.net/trac/osgearth/raw-attachment/wiki/Downloads/libzip-windows.zip

    vs2010:

    http://files.cnblogs.com/eaglezhao/libzip(vs10).rar

    OSGEARTH(SVN上下载):svn: http://svn.github.com/gwaldron/osgearth.git(目前最新版是osgearth 2.0)

  • 安装:
    • CURL

      注意你下载的如果是源码版本,直接用VS2008编译,还可以下载预编译的版本,但是里面缺少一个调试的库文件.

      编译好后将目录下的include/curl下文件拷到E:\OSG\3rdparty\include\curl ,进行覆盖

      编译好后将目录下的lib下的libcurl.dll文件拷到E:\OSG\3rdparty\bin ,进行覆盖

    • GDAL

      下载完GDAL的源码后,还需要先运行makegdal_gen.bat这个文件,然后打开X:\Program Files\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT,X代表你VS的安装盘.打开后用cd命令切换到你GDAL的目录下执行命令,nmake /f makefile.vc MSVC_VER=1500 BUILD_DEBUG=YES,其中1500代表VS版本2008,当然你也可以进入nmake配置文件修改.

      GDAL编译完成后的文件存放于C:\warmerda\bld,包含文件include,lib,data,bin,可将它们拷贝到GDAL文件夹下,置于OSG目录下。最后进行以下工作:

      将alg、gcore、ogr、port文件夹下的.h文件拷贝到include下, 将生成的lib、 dll 包括: gdal_i.lib gdal.lib cpl.lib(port目录下) ogr.lib(ogr目录下), 以及gdal18.dll

      拷贝到D:\OSG\GDAL\lib下

    • GEOS

      用编译GDAL同意的办法编译完成GEOS.将生成的geosd.lib,geos.lib, geos_c_i.lib, geosd_c_i.lib拷贝到D:\OSG\geos\lib下,将geos-3.2.2\source\headers下的geos文件夹拷贝到include下.

    最后的文件结构如图:

    osgEarth编译(转载)

    注意里面的expat我并没有用上,可能已经被其他的库所包含了.

    osg是已经编译好的,并且osg的环境变量已经设定好,那么cmake会自动找到你的osg

    的路径的.

  • 编译osgEarth

    使用cmake打开osgEarth的cmakeLIsts.txt

    改DYNAMIC_OSGEARTH (BOOL变量) ON

    OSG_DIR (PATH) X:/OSG/OpenSceneGraph

    具体cmake里面的设置参照下图:

    osgEarth编译(转载)

    最后就是要将里面的notfound的项的内容删除,也就是置空.

    接着就生成VS的解决方案,进入VS以后里面要设置包含文件和库文件

  • osgEarth编译(转载)

  • osgEarth编译(转载)

    生成完成后,再运行INSTALL工程进行生成。

    注意要生生成debug和release两个版本,和osg一样,debug和release版本要对应, 否则将会出错,对应的调试命令和库文件都要单独设置,否则可能会出现找不到插件或者其他问题.

  • 环境变量配置

    将D:\OSG\OSGEARTH\lib\Debug和Release文件夹下的文件全部拷贝到D:\OSG\OSGEARTH\bin下的Debug和Release文件夹下,再运行.exe,缺什么.dll,搜索拷贝进去即可(gdal18.dll在GDAL文件夹下)。

    环境变量设置

    OSG_FILE_PATH:D:\OSG\OSGEARTH\data;D:\OSG\GDAL\data;

    PATH:E:\OSG\3rdParty\bin;D:\OSG\OSGEARTH\bin\Debug; D:\OSG\OSGEARTH\bin\Release;

    最后你从cmd进入源码目录的tests文件夹,测试是否安装成功.

    osgEarth编译(转载)

    出现一个有纹理的地球,说明已经安装成功.否则就是有错误.大部分情况是插件编译的问题.