zoukankan      html  css  js  c++  java
  • OpenSceneGraph学习笔记

    VirtualPlanetBuilder编译方法

    转自:http://www.boyunjian.com/do/article/snapshot.do?uid=7327932418831703800

    一、下载安装TortoiseSVN客户端

      VirtualPlanetBuilder源代码需要通过TortoiseSVN客户端来获取。TortoiseSVN客户端下载地址 http://tortoisesvn.net 。网页提供了完整的客户端安装文件,以及语言包。笔者电脑操作系统为Windows 7(32位),下载了笔者操作系统相对应的客户端,同时下载了简体中文语言包。安装TortoiseSVN客户端,以及语言包。安装过程很简单,直接默认安装即可。 
       

    二、通过TortoiseSVN客户端获取VirtualPlanetBuilder源代码


      在任意文件夹单击鼠标右击,然后点击SVN Checkout...,在版本库URL中输入http://www.openscenegraph.org/svn/VirtualPlanetBuilder/trunk ,点击确定。 
        
        
        
      下载的文件夹中文件如图所示: 
        
      打开NEWS.txt文件,查看VirtualPlanetBuilder版本。 
        
       注意:编译VirtualPlanetBuilder的时候,VirtualPlanetBuilder版本和OSG版本一定要兼容,否则会出现编译问题。通过TortoiseSVN下载的这个版本,可以和OpenSceneGraph-3.0.1完美兼容。 
       OpenSceneGraph-3.0.1的编译方法,可以参考笔者的另一篇博客: OpenSceneGraph学习笔记(一):OpenSceneGraph编译方法 

    三、编译OpenSceneGraph版本对应版本的GDAL


      笔者在上一篇博客编译OpenSceneGraph-3.0.1的时候,并没有编译GDAL。这里从GDAL的官方网站( http://www.gdal.org )下载最新版本的源代码包,然后进行编译即可。也可下载官方编译好的GDAL包直接使用。您需要下载和您操作系统、编译器相对应的源代码包,笔者下载的源代码包为release-1600-gdal-mapserver-src.zip,同时也下载了其他文件,但是和本篇内容无关。 
        
      源代码在文件release-1600-gdal-mapserver-src.zip之中,将源代码解压即可。这里我们只需要解压压缩包release-1600-gdal-mapserver-src.zip中的gdal文件夹。将解压的文件夹命名为gdal-20130222。 

    解压结果如图所示: 
        
      用Microsoft Visual Studio 2010打开文件makegdal10.sln,运用Microsoft Visual Studio 2010批生成工具编译。 
        
        
      
      GDAL 编译完成后的文件存放于 C:warmerdald ,包含文件 bin,data,html 三个子文件夹。将该文件夹拷贝到gdal-20130222文件夹中。对比之前的文件,可以看到gdal-20130222文件夹中,同时也生成了lib文件等。 
        
       注意:如果按照笔者 OpenSceneGraph学习笔记(一):OpenSceneGraph编译方法 文章中的方法,直接下载官方编译好的文件,需要在文件包中查找GDAL的版本,和编译相对应版本的lib文件。 
       GDAL文件的版本查找方法如下: 
       解压下载好的压缩包,在如图所示的路径中找到文件,文件后缀即gdal的版本。则下载gdal18的源代码进行编译即可。同时可以查看笔者之前编译的gdal版本为1.10.0.0。 
        
       

    四、整理 VirtualPlanetBuilder编译代码


      新建名为VirtualPlanetBuilder-20130222的文件夹,这是笔者的一个习惯,将文件夹的后缀加上时间,方便日后查看。 
      1、将下载好的VirtualPlanetBuilder源代码复制到该文件夹,将VirtualPlanetBuilder文件夹命名为VirtualPlanetBuilder-0.9.11,加上版本号之后,也是方便我们日后查看。 
      2、将编译好的 OpenSceneGraph-3.0.1【OpenSceneGraph-3.0.1_VS2010_20130220[-debug-release]】复制到该文件夹。 
      3、 因为笔者在用自己编译的GDAL包,编译VPB的时候,出现了错误。{解决方案,笔者会在今后的学习中提供} 
        改用官方编译好的GDAL包,可以完美的编译通过,具体使用方法如下: 
        在VirtualPlanetBuilder-20130222文件夹中,新建一个名为gdal-1.10.0.0-20130222的文件夹,解压如图所示的压缩包到该文件夹。 
                          
          
      4、新建一个名为VirtualPlanetBuilder-0.9.11_VS2010_20130222文件夹。结果如图所示: 
           

    五、设置系统环境变量


      开始-->控制面板-->系统-->高级系统设置 
        
      1、添加系统环境变量:OSG_DIR、GDAL_DIR 
      这两个变量是为了在系统中指明OSG和GDAL的存放位置。 
       
      2、添加Path值 
      在系统Path中添加值: 
       %GDAL_DIR%LIB;%GDAL_DIR%BIN;%OSG_DIR%INCLUDE;%OSG_DIR%LIB;%OSG_DIR%BIN; %OSG_DIR%include;%OSG_DIR%share; %OSG_DIR%data;

      直接复制到Path变量值最前面就行。 
       

    六、CMake处理源代码


      如图所示设置 源代码地址和源代码编译地址, 点击 configure。 
      
        
      
      修改CMAKE_INSTALL_PREFIX值和编译代码文件夹位置一致,然后点击configure 
      
       

    七、编译源代码


      用VS2010打开VirtualPlanetBuilder-0.9.11_VS2010_20130222文件夹下VIRTUALPLANETBUILDER.sln文件。 
       
      打开:VIRTUALPLANETBUILDER.sln之后, 修改下面文件: vpb 项目下 SpatialProperties.cpp 文件【推荐方法】 
       注意:如果不修改,也可以编译,但是VS2010会出现error LNK2005的链接错误,需要修改VPB工程属性。 
       错误 1 error LNK2005: "public: void __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ) 已经在 SpatialProperties.obj 中定义 E:paperOpenSceneGraphVirtualPlanetBuilder-20130222VirtualPlanetBuilder-0.9.11_VS2010_20130222srcvpbosgDB.lib(osg80-osgDB.dll) 
      错误 3 error LNK2005: "public: void __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ) 已经在 SpatialProperties.obj 中定义 E:paperOpenSceneGraphVirtualPlanetBuilder-20130222VirtualPlanetBuilder-0.9.11_VS2010_20130222srcvpbosgDBd.lib(osg80-osgDBd.dll) 
      
      
      修改方法: 在vpb的 ”项目属性->链接器->命令行“ 中添加 ”/FORCE:MULTIPLE" ,(记住dubug和release都要添加,如果您需要生成两个版本) 
       
       
       
      用VS2010的批生成工具对源代码进行编译。 
        
      编译完成 
      

  • 相关阅读:
    打印当前系统内存使用情况
    swagger 相关
    乐观锁
    mybatis-plus
    kt connect
    flyway
    k8s mandatory.yaml & service-nodeport.yaml
    kubernetes的DNS解析,k8s的DNS解析,service DNS解析,在集群内部通过 Service 的域名形式进行互相通信
    k8s中引入外部服务,k8s中引入外部数据源
    docker 访问外部数据库
  • 原文地址:https://www.cnblogs.com/flylong0204/p/4505789.html
Copyright © 2011-2022 走看看