参考链接1:

http://blog.csdn.net/lonsegdi/article/details/50579439

参考链接2:

http://bbs.osgchina.org/forum.php?mod=viewthread&tid=9223&extra=page=1&_dsign=253e9edb

前期准备



在CMake的安装过程中部分杀毒软件会进行警告,点击允许即可。

解压文件

  • 首先在某个地方创建一个文件夹(我直接在E盘上创建一个名为OSG的文件夹),用来存储数据,在这个文件夹内,创建3个子文件夹(3rdParty、data、OpenSceneGraph),分别存储3个压缩包中的内容,如图所示:

  • 接着开始解压文件。

    ① 打开3rdParty_VS2013_v120_x86_x64_V9_small.7z\3rdParty_x86_x64,根据自身的系统选择文件夹,打开文件夹后全选里面所有的东西,解压到指定文件夹:…\OSG\3rdParty。需要说明的是,x86对应32位系统,x64对应64位系统(不过在这里还是推荐选择x86,因为64位的隐患很大,很多库没有64位的,参考链接2里的那位楼主亲自试验过,在后面的VS批生成的时候导致ALL_INSTALL出现了2个失败,在后面的直接4个全失败。所以这里他建议选择使用32位的)

    ② 打开OpenSceneGraph-Data-3.4.0.zip\OpenSceneGraph-Data,全选所有内容解压到 …\OSG\data

    ③ 打开OpenSceneGraph-3.4.0.zip\OpenSceneGraph-3.4.0,全选所有内容解压到 …\OSG\

    OpenSceneGraph。为了避免文件过于杂乱,建议在解压完文件后,在OpenSceneGraph文件夹中新建两个文件夹bin和build。

处理源码

  • 打开CMake,目录 …\CMake\bin,里面的那个cmake-gui.exe就是(建议在桌面创建一个快捷方式方便打开)

  • 将OpenSceneGraph文件夹中的CMakeLists.txt拖到CMake中:

  • 将Where to build the binaries后的目录地址改为刚刚创建的build文件夹:

  • 接着点击下方的Configure按钮,在弹出的对话框中作如下选择:(为什么不选择VS2013??因为最新的CMake没有这个选项,不过我们用VS2012的方式也可以解决问题,具体措施查看文末

  • finish之后进行相关的设置:

    ACTUAL_3RDPARTY_DIR:…/OSG/3rdParty;

    BUILD_OSG_EXAMPLES:勾上

    CMAKE_INSTALL_PREFIE:…/OSG/OpenSceneGraph/;



  • 修改完参数的值后,再次点击Configure

  • 将BUILD_MFC_EXAMPLE参数后面的√打上,又一次Configure(如果找不到这个参数,将上方的Advanced选上):

  • 最后点击Generate,源码处理完毕。

编译阶段

用VS2013打开,这个好像是VS2012对应的解决方案文件,不过似乎没什么影响;在打开的过程中会弹出一个对话框问你要不要diable某个option,我不是很清楚就点了否。

打开【菜单栏】-【生成】-【批生成】,对ALL_BUILD进行生成(选择Debug和Release两种配置):

这段编译时间非常长,大致要3-5个小时(似乎和电脑的配置有关系?)

这里要插播一句,因为用的是面向VS2012的解决方案(sln),因此编译结束后输出栏中可能会有一大堆的警告和报错,不用管它。(具体解决措施见文末)

接着对INSTALL执行相同的操作,这段时间就比较短了:

数据整理

编译结束后,生成了大量的数据(估摸着有3个G),为了方便之后的使用,我们在另外的地方重新创建了一个OSG文件夹,里面包含了四个子文件夹:

填充这四个文件夹就成了下一步我们要做的事。

  • 将…\OSG\OpenSceneGraph下的bin,include,lib文件夹直接拷贝至新的OSG文件夹
  • 打开…\OSG\OpenSceneGraph\build,将里面的bin,include,lib文件夹也拷贝到新的OSG文件夹,期间系统弹出的任何关于合并、替换的提示(替换文件夹,替换xx文件等等),选择“合并”和“复制和替换”:



  • 最后,将…\OSG下的data文件夹整个拷贝到新的OSG文件夹。

  • 完毕。

环境变量设置与链接库

【我的电脑】-【属性】-【高级系统设置】-【高级】-【环境变量】在系统变量PATH后添加新的OSG文件夹中bin文件夹的目录,即在变量值后面用分号隔开写入新的OSG文件夹bin文件夹的目录:…\OSG\bin;

另外,手动在系统变量中添加变量OSG_FILE_PATH,并将变量值设置为新的OSG文件夹中data的位置,即 …\OSG\data

:win7系统中,环境变量的配置重启后生效,可以配置完毕后再重启。

这时候回到编译器VS2013,先创建一个一般工程用于测验,然后打开【菜单栏】-【项目】-【属性】-【配置属性】-【VC++目录】,在包含目录库目录中分别添加新的OSG文件夹中include和lib的位置:

以及,在【VC++目录】下两行的【链接器】-【输入】的附加依赖项中添加如下代码:

OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgUtild.lib
osgGAd.lib
osgViewerd.lib
osgTextd.lib

调试阶段

理论上讲,以上操作结束后,osg就可以在VS2013的环境下发挥作用了,这时候我们借助一些简单的代码来进行调试:

#include<osgViewer/Viewer>
#include<osgDB/ReadFile> int main(int argc, char *argv[])
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
return viewer.run();
}

由于CMake中不存在VS2013的解决方案,我们之前使用的是VS2012的生成方法,并且在编译的时候也忽略了输出框中的一些警告和报错,因此难免会出点问题。

比如我在调试的时候编译器就提示我“缺少zlibd.dll文件”,而使用everything搜索了之后,发现(新)OSG/bin文件夹中并没有这个dll文件,只有原来的…\OSG\3rdParty\bin\中有一个,于是我将其中相关的3个文件拷贝到了新的文件夹,问题解决,运行成功。

类似地,缺少什么dll文件可以先在电脑中搜索一下,然后手动拷贝到新的bin文件夹里,应该不会有什么大问题。

以下是例图:

VS2013环境下配置OSG(3.4.0版本)的更多相关文章

  1. Eclipse环境下配置spket中ExtJS5.0提示

    使用eclipse编写extjs时,一定会用到spket这个插件,spket可以单独当作ide使用,也可以当作eclipse插件使用,我这里是当作eclipse的插件使用的,下面来一步步图解说明如何配 ...

  2. VS2013环境下Boost库配置

    序言 最近了解各大互联网公司的校招要求,发现了解Boost程序库也是不可或缺的一部分~ 于是,决定潜心研究下,这个准标准库~ 首先,在官网下载boost的最新版本Boost 1.59.0,这是当前的最 ...

  3. Windows-Server-2008、IIS7.0环境下配置伪静态化

    在Windows-Server-2008.IIS7.0环境下配置伪静态化                首先,是IIS7.0的配置,由于Windows Server 2008操作系统默认的IIS版本为 ...

  4. 【经验之谈】Windows环境下配置WordPress

    前言 wordpress全球著名的开放博客平台,拥有成千上万个各式插件和不计其数的主题模板样式,使用php和mysql搭建,下面说下载windows环境下配置wordpress,经验之谈. 安装 关于 ...

  5. nginx环境下配置nagios-关于nagios配置文件nginx.conf

    接上文:nginx环境下配置nagios-关于nginx.conf 配置如下: ;          location ~ .*\.(php|php5)?$          {            ...

  6. nginx环境下配置nagiosQL-关于nagiosql配置文件

    接上文:nginx环境下配置nagios-关于nginx.conf nagiosql文件应该处于conf/domain/目录下 nagiosql配置如下: ;                  gzi ...

  7. Nginx环境下配置PHP使用的SSL认证(https)

    最近一段时间发现好多网站都从http协议变成了加密的https协议,比如说百度.吾志等等.https看起来比http高端了好多,而且在不同的浏览器向上还会显示出不同于http的URL展示效果(比如说c ...

  8. Ubuntu 12.04环境下配置Postgresql和phppgadmin

    Ubuntu 12.04环境下配置Postgresql 9.1 和phppgadmin 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/zjianb ...

  9. macOS Sierra Version 10.12.6 环境下Tomcat的下载与安装以及InterlliJ IDEA 2017.2 环境下配置Tomcat 与创建Web项目

    一.Tomcat的下载与安装 1.官网(http://tomcat.apache.org/)下载Tomcat 9.0 Core:zip包: 2.解压到指定的文件夹即可安装完成: 3.测试是否安装成功 ...

随机推荐

  1. MATLAB中将mat文件转为txt格式文件

    直接保存为txt文件: 可以用fprintf函数,来代替save函数 比如现在我有一个变量a=[0.1223   345.4544] 如果我想保存它的话,可以用下面的程序: fid = fopen(' ...

  2. Chrome console & Command Line API

    Chrome console & Command Line API $ && $$ querySelector querySelectorAll Command Line AP ...

  3. scrimba & interactive free online tutorials

    scrimba & interactive free online tutorials https://github.com/scrimba/community/blob/master/FAQ ...

  4. 算法型稳定币USDN是如何保持稳定的?

    数据显示,2019年稳定币市场总市值25亿美元,在整个加密货币市场占比 1.3%.可别小瞧了看似微小的1.3%这个数据,它其实是一个庞大的市场.稳定币不仅仅是货币的电子化,它还是一种可编程的加密货币, ...

  5. Captain Technology INC浅谈新能源汽车的未来

    近日全世界上最大的资管公司贝莱德向位于的英国电动汽车初创公司Arrival投资1.18亿美元,且该公司已有投资者亚马逊和美国第二大汽车制造商福特汽车参投.中国最知名的电动车公司蔚来股价单日大涨22%, ...

  6. HTTP 协议的前世今生

    尽人事,听天命.博主东南大学研究生在读,热爱健身和篮球,正在为两年后的秋招准备中,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 C ...

  7. 【转】主成分分析(PCA)

    原文网址:https://blog.csdn.net/sunshine_in_moon/article/details/51513880.转载主要方便随时可以查看,如有版权要求请及时联系. 相信大家对 ...

  8. PriorityQueue使用介绍

    这玩意儿叫优先级队列,是一个类,继承了AbstractQueue类,实现了Serializable接口. jdk文档里是这么描述这玩意的: 基于优先级堆的无限优先级queue . 优先级队列的元素根据 ...

  9. Linux系列 -- XShell破解版安装教程

    目录 一.xshell6商业版安装教程 1. 为什么要用xshell 2. 打开Keygen软件获取注册码 3.安装Xmanager_PowerSuite软件 4.打开康康. 二.XShell远程连接 ...

  10. Go的数组

    目录 数组 一.数组的定义 1.声明数组 2.初始化设值 3.指定位置设值 4.不指定长度初始化(了解) 二.数组的使用 三.数组的类型 四.数组的长度 五.迭代数组 1.初始化迭代 2.使用rang ...