虽然出生的时候,没有说过“Hello World!”,但是自从走上了编程之路,每一次输出“Hello World!”的时候,都觉得好比中了彩票大奖似的;

  仔细算算,从2012年暑假到现在,经历了3年半的光阴,这段时间,不仅是知识、阅历、成长获得最大的一段,也是人生的一大转折点。在这期间,得以继续深造学习自己的专业,虽然踏入这行的时候,也是调剂来的,但是我用这3年的时间,恶补自己7年的不足;2015年,发生了三件大事,我毕业了,我工作了,我有女票了(三件事的重要程度递增);吃得苦中苦,方位人上人,为自己经历的苦逼和磨难,敬上自己的感激,同时也为生命中支持和鼓励我的人,真心的说一句:感谢有你!

下面进入正题,首先声明环境搭建步骤不是原创的,纪录在此的目的,一是以便之后查看,二来希望对大家有所帮助:

一.相关文件下载

1.1 Osg源码

  OpenSceneGraph的3.0.0.zip(现在最新版已经到3.4了)

  下载链接:http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zip

1.2 Osg第三方库

  3rdParty_VC10_x86_x64.zip

  下载链接:http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip

1.3 OSG官方示例数据包

  OpenSceneGraph-Data-3.0.0.zip

  下载链接:http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenSceneGraph-Data-3.0.0.zip

1.4 安装源码工具(虽然写的x86的,但是64位系统也可以用的)

  1.4.1 之前版本下载连接: cmake-2.8.4-win32-x86.exe

  1.4.2 最新版本下载连接: cmake-3.4.1-win32-x86.exe

二、编译环境创建

为了编译的顺利进行,将下载的文件组织如下,在E盘建立一个OSG的文件夹,然后其他文件如下放置:

  E:\OSG\OpenSceneGraph,源码解压后放于此;

  E:\OSG\3rdParty,第三方依赖库解压后放于此;

  注意:这个里面的第三方库一般包含x64和x86的两个版本的,这里要根据你自己的电脑需要选择一个然后把里面的文件复制到3rdParty文件夹中。

     由于本人的电脑是64位的系统,所以我选择的留下了的是“x86”。

      之所以选择x86,也就是32位是因为64位的隐患很大,很多库没有64位的,

      而我也自己亲身实践过,在后面的VS批生成的时候导致ALL_INSTALL出现了2个失败,在后面的直接4个全失败。所以这里我建议选择使用32位的;

  E:\OSG\data,数据包解压后放于此。

三.编译OSG源码

3.1 首先安装CMake,之后打开CMake -gui.exe

  这里要补充说下,因为有些教程里面说到,在创建” E:\OSG\OpenSceneGraph”文件夹之后,

  最好在里面新建两个文件夹,一个叫”build”;一个叫”bin”;

3.2 将源码OpenSceneGraph文件夹里头的CmakeLists.txt,拖到Cmake界面,如图:

  

   然后将“where to build the binaries”设置为,刚刚新建的“build”文件夹,具体如上图。

3.3 点击Configure,选择Visual Studio 10,如下图:

   

  这里需要说的是,因为我上面第三方依赖库我保留的是x86,所以我这里也就自然选择VS10就可以了;

  另外还有一个是VS10 Win64 的那就是要对应之前的第三方依赖库的选择了;

3.4 点击Finish之后,等一下,然后进行相关设置:

  ACTUAL_3RDPARTY_DIR:E:/OSG/3rdParty

  BUILD_OSG_EXAMPLES :勾上

  CMAKE_INSTALL_PREFIX:E:/OSG/OpenSceneGraph/

  如下图:

  

3.5 点击Configure后,等一会;

  然后将Advanced打勾,将BUILD_MFC_ EXAMPLE设置为on,进行最后一次的Configure配置,点击Configure:

  如果这过程中下面的这个区域:

  

  出现了红色的乱码,可能是跟你的VS10的一些默认项目文件存放的路径有关,之所以会乱码,是因为可能上面说到的路径有中文。

  所以,建议不要去修改VS10的一些默认的存放的路径,避免不必要的错误。

  当然随着这步勾选上BUILD_MFC_ EXAMPLE,正常的情况应该是中间区域的红色会全部消失,但是下面的区域你去查看会发现任然有些红色的语句警告,这无关紧要;

  继续进行下一步。

3.6 点击Generate,自此建构完成。

四.编译阶段

4.1 用VS2010打开OpenSceneGraph.sln(此文件在E:\OSG\OpenSceneGrap\build下);

  找到菜单:生成-批生成,对All_BUILD进行生成,选择(Debug和Release两个版本),这段编译时间是很长的,估计2个小时左右,主要看电脑,这的确要很久;

  建议大家要耐心等待,代码好像要走到13000左右差不多就好了,这段时间可以打局LOL或者看看视频之类的,玩笑了。

  

4.2 第1步完成后,再对INSTALL也进行相应生成编译,这段时间很快的:

  

五.数据转移

  在C盘新建OSG文件夹(这个可以放在你想放的地方,不仅仅限于C盘,因为毕竟不是所有人都是把C盘设置的很大,而且不免有些人的C盘是容量不大的SSD)

  将E:\OSG\OpenSceneGraph下的bin,include,lib文件夹,拷贝到C:\OSG下;

  将E:\OSG\data下的数据,拷贝到C:\OSG\data下;

  这几个文件是OSG需要的。

六.环境变量设置

6.1右击“计算机”,然后“属性”,在计算机属性窗口的左边有个高级系统设置,如下图:

  

  点击之后,高级--环境变量,对系统变量设置如下:

  新建一个变量:OSG_FILE_PATH:C:\OSG\data

  追加变量内容:PATH:C:\OSG\bin;

6.2 在命令行(CMD)进行测试:

  osgversion

  osgviewer cow.osg

  osglogo

  注意:测试osglogo时,出现如下错误:

    'osglogo' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。

  这个原因我搜索了一下osglogo.exe,发现它存在于两个地方:

    E:\OSG\OpenSceneGraph\share\OpenSceneGraph\bin
    E:\OSG\OpenSceneGraph\build\bin

  实际上到这一步,已经编译成功,如果觉得非得调出osglogo的话,就把osglogo.exe复制到C:\OSG\bin下面,就可以了。

七.新建OSG项目测试

  7.1  在VS2010下,找到C++,新建WIN32控制台程序;

  7.2 添加一个cpp;

  7.3 输入以下代码:

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

  7.4 右键项目,选择“属性”,选择“VC++目录”,在包含目录添加:C:\OSG\include,在库目录添加:C:\OSG\lib

  

  7.5 打开项目属性的链接器,在输入厘米那,附加依赖项加上:

OpenThreadsd.lib

osgd.lib

osgDBd.lib

osgUtild.lib

osgGAd.lib

osgViewerd.lib

osgTextd.lib

7.6 运行,效果如下图:

  

Congratulations,下面你就可以享受OSG的世界了!

【OSG学习笔记之一:】OSG+VS2010+win7 64位环境搭建的更多相关文章

  1. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  2. WIN7 64位系统搭建WINCE6.0系统遇到的问题

    WIN7 64位系统搭建WINCE6.0系统遇到的问题 安装顺序如下: .先装Visual Studio2005: .安装Visual Studio2005 Service Pack 1: .安装Vi ...

  3. win7 64位环境下,为python2.7 安装pip

    第一步: 安装python并配置好环境变量 参见:http://blog.csdn.net/donggege214/article/details/52062855 第二步: 下载setuptools ...

  4. win7 64位环境下配置汇编环境和程序设计

    下载dosbox,并解压安装 下载地址: http://pan.baidu.com/s/1eRJbJAq 默认安装到C:\Program Files (x86)\DOSBox-0.74 安装成功后,双 ...

  5. GDAL VS2010 win7(64位)安装、使用说明(图文解析)

    一.电脑配置及安装版本 Win 7(64位机) Visual Studio 2010 GDAL 1.9.2(我也尝试了最新版GDAL1.11.0,应该同样可以用的,只是在重新配置时又选用了老一点的版本 ...

  6. HTML5学习笔记<五>: HTML表单和PHP环境搭建

    HTML表单 1. 表单用于不同类型的用户输入 2. 常用的表单标签: 标签 说明 <form> 表单 <input> 输入域 <textarea> 文本域 < ...

  7. VS2010 win7 64位安装后新建项目生成时错误:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 ...

  8. Cocostudio学习笔记(1) 扯扯蛋 + 环境搭建

    转眼七月份就到了,2014已经过了一半,而我也最终算是有"一年工作经验"了,开心ing. 回想这一年Cocos2dx的游戏开发经历,去年下半年重心主要在游戏的逻辑上,而今年上半年重 ...

  9. React学习笔记-1-什么是react,react环境搭建以及第一个react实例

    什么是react?react的官方网站:https://facebook.github.io/react/下图这个就是就是react的标志,非常巧合的是他和我们的github的编辑器Atom非常相似. ...

随机推荐

  1. oracle、mysql新增字段,字段存在则不处理

    oracle: 表名:CHANNEL_TRADE_DETAIL列名:exchange_code declare v_rowcount integer; begin select count(*) in ...

  2. 浅析敏感词过滤算法(C++)

    为了提高查找效率,这里将敏感词用树形结构存储,每个节点有一个map成员,其映射关系为一个string对应一个TreeNode. STL::map是按照operator<比较判断元素是否相同,以及 ...

  3. VS工程里的文件都是啥?如何打包? 2015-03-04

    打完补充:以下内容全部是我一家之言,只是愿意分享,内容如有不妥还请见谅. ====================================================== 刚才接收了一份代 ...

  4. JS绑定JavaScript事件

    //onblur="onblurs(this)" // function onblurs(e) { // alert(e.value); // }

  5. flexbox布局

    一.侧轴对齐伸缩项目--align-items 它充许调整伸缩项目在侧轴(也就是y轴)的对齐方式,主要包括以下几个值: flex-start/baseline:伸缩项目在侧轴起点边的外边距紧靠住该行在 ...

  6. 使用merge同时执行insert和update操作

    SQL点滴18—SqlServer中的merge操作,相当地风骚   今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在tech ...

  7. Android学习---数据库的增删改查(sqlite CRUD)

    上一篇文章介绍了sqlite数据库的创建,以及数据的访问,本文将主要介绍数据库的增删改查. 下面直接看代码: MyDBHelper.java(创建数据库,添加一列phone) package com. ...

  8. OC基础语法之方法

    看惯了c#的代码再去看Object-C的代码,总感觉有点懵逼,记录下OC的方法用法:   在OC中一个类中的方法有两种类型:实例方法(类似于非静态函数),类方法(类似非静态函数). 实例方法前用(-) ...

  9. CSS盒子模型的理解

    标准的CSS盒子模型包括:内容(content).填充(padding).边框(border).边界(margin) 这些属性,可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子 ...

  10. 20151210study

    -----------------------------------------------------The election officials were not neutral.选举官员并不是 ...