runxinzhi.com
首页
百度搜索
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的批生成工具对源代码进行编译。
编译完成
相关阅读:
ubuntu创建用户命令
C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果)
Ubuntu14.04 64bit 编译安装nginx1.7+php5.4+mysql5.6
ubuntu mysql 远程连接问题解决方法
如何在LabWIndows/CVI中调用LabVIEW DLL
NI MAX中缺少串口(转)
LabWindows/CVI入门之第四章:库文件(转)
c#中多线程同步Lock(锁)的研究以及跨线程UI的操作 (转)
C# 实现生产者消费者队列 (转)
Unity3d基于Socket通讯例子(转)
原文地址:https://www.cnblogs.com/flylong0204/p/4505789.html
最新文章
EasyPlayer播放海康大华RTSP流时RTSPClient客户端连接兼容问题的解决
EasyPlayer播放海康大华RTSP流时RTSPClient客户端连接兼容问题的解决
EasyPlayer Android安卓RTSP服务器低延时再优化策略
EasyPlayer Android安卓RTSP服务器低延时再优化策略
实现RTSP摄像机进行网页直播和微信直播的技术方案:EasyNVR自动更新方法
实现RTSP摄像机进行网页直播和微信直播的技术方案:EasyNVR自动更新方法
基于EasyNVR+EasyDSS H5视频直播二次开发实现业务需求:直接使用播放页面
基于EasyNVR+EasyDSS H5视频直播二次开发实现业务需求:直接使用播放页面
EasyDSS RTMP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
EasyDSS RTMP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
热门文章
编译EasyDSS rtmp流媒体服务器遇到stray '_239' inprogram,stray '_187' inprogram,stray '_191' inprogram的解决办法
编译EasyDSS rtmp流媒体服务器遇到stray '_239' inprogram,stray '_187' inprogram,stray '_191' inprogram的解决办法
EasyDSS RTMP流媒体解决方案之直播录像自动清理方案
EasyDSS RTMP流媒体解决方案之直播录像自动清理方案
使用TCP协议的NAT穿透技术(转)
ubuntu 中DNAT SNAT配置实验.
使用 Git Hook 实现网站的自动部署
Android之Adapter用法总结
使用ViewPager和Fragment实现滑动导航
Ubuntu 安装mysql和简单操作
Copyright © 2020-2023
润新知