环境:Vs2010

  OpenSceneGraph-3.0.1-VS10.0.30319-x86-debug-12741

  OpenSceneGraph-3.0.1-VS10.0.30319-x86-release-12741

设置环境变量
PATH:                   D:\osg\bin
OSG_FILE_PATH:   D:\osg\data
这时候你可以用osgViewer查看一下osg文件,比如经典的奶牛cow.osg
在命令行下输入:osgViewerd.exe cow.osg
 
新建一个vc空项目,设置vc++包含目录和库目录。vc2010是右击|属性|项目和解决方案|VC++目录,低版本是工具|选项|项目和解决方案|VC++目录
包含文件:   D:\osg\include
库文件:      D:\osg\lib
右击|属性|配置属性|链接器|输入|附加依赖项
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgViewerd.lib
如果编译Release版本,去掉d
新建main.cpp输入下面的代码,这次显示一个滑翔机。
  1. #include <osgDB/ReadFile>
  2. #include <osgViewer/Viewer>
  3. void main()
  4. {
  5. osgViewer::Viewer viewer;
  6. viewer.setSceneData(osgDB::readNodeFile("glider.osg"));
  7. viewer.realize();
  8. viewer.run();
  9. }

http://greatverve.cnblogs.com/archive/2012/09/19/osg-hello-world.html

编译出现的问题:d和非d的lib

过程中出现的问题:Microsoft C++ 异常 std::bad_alloc

0x7c812afb 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0012f448 处的 std::bad_alloc。

原因:编译Debug版本的时候使用了不带d的Dll。

处理方法:

Demo编译成Debug版本使用带d的dll,编译成Release版本使用不带d的dll。

注意:

1. 编译Debug和Release版本需要分别设置项目属性中的包含目录文件和库目录

2. 分别设置“链接器——输入——附加依赖项”,或者输入如下代码:

  1. #ifdef _DEBUG
  2. #pragma comment (lib,"OpenThreadsd.lib")
  3. #pragma comment (lib,"osgd.lib")
  4. #pragma comment (lib,"osgDBd.lib")
  5. #pragma comment (lib,"osgFXd.lib")
  6. #pragma comment (lib,"osgGAd.lib")
  7. #pragma comment (lib,"osgManipulatord.lib")
  8. #pragma comment (lib,"osgParticled.lib")
  9. #pragma comment (lib,"osgShadowd.lib")
  10. #pragma comment (lib,"osgSimd.lib")
  11. #pragma comment (lib,"osgTerraind.lib")
  12. #pragma comment (lib,"osgTextd.lib")
  13. #pragma comment (lib,"osgUtild.lib")
  14. #pragma comment (lib,"osgViewerd.lib")
  15. #else
  16. #pragma comment (lib,"OpenThreads.lib")
  17. #pragma comment (lib,"osg.lib")
  18. #pragma comment (lib,"osgDB.lib")
  19. #pragma comment (lib,"osgFX.lib")
  20. #pragma comment (lib,"osgGA.lib")
  21. #pragma comment (lib,"osgManipulator.lib")
  22. #pragma comment (lib,"osgParticle.lib")
  23. #pragma comment (lib,"osgShadow.lib")
  24. #pragma comment (lib,"osgSim.lib")
  25. #pragma comment (lib,"osgTerrain.lib")
  26. #pragma comment (lib,"osgText.lib")
  27. #pragma comment (lib,"osgUtil.lib")
  28. #pragma comment (lib,"osgViewer.lib")
  29. # endif

OSG第一个Demo的更多相关文章

  1. angular开发者吐槽react+redux的复杂:“一个demo证明你的开发效率低下”

    曾经看到一篇文章,写的是jquery开发者吐槽angular的复杂.作为一个angular开发者,我来吐槽一下react+redux的复杂. 例子 为了让大家看得舒服,我用最简单的一个demo来展示r ...

  2. 初识nginx之第一个demo

    商城项目做了一个多月了,想到必须用到负载均衡,简单了解了一下nginx,首先分享第一个demo,五月份上线后,会继续分享一系列相关知识. 在nginx根目录下,用了一个园友的批处理文件nginx.ba ...

  3. springMvc的第一个demo

    1.下载jar包 http://repo.spring.io/libs-release-local/org/springframework/spring/4.2.3.RELEASE/ 2.下载源码 j ...

  4. Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)

    在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等. ...

  5. 如何在WTL和MFC中使用duilib及如何静态使用duilib库!(初级讲解 附带一个Demo)

    关于duilib的历史,我也就不多说了,能看到这篇文章的人都是有一定了解才能找到这个的. 我直接说下对这个库的基本使用吧. 我个人对一些好技术都是比较感兴趣的. 因为个人原因 喜欢接触一个好技术. 所 ...

  6. 白盒测试之gtest第一个demo

    认识gtest工具后,关于它的使用,下面将用一个demo程序演示一下gtest的用法以及成果展示. 一.需要测试的C++代码: #include "myfunction.h" // ...

  7. 在VS中实现webService的一个demo(图解)

    在VS中实现webService的一个demo(图解) 先创建一个web项目,创建好web项目后,添加新建项——web服务 在新建好的web服务文件中写如下代码: 生成当前解决方案. 新建一个winf ...

  8. Cocos2d-x 学习(1)—— 通过Cocos Studio创建第一个Demo

    近期在工作上有了比較大的转变,自学情绪也慢慢高涨,本来一直在研究unity的技术.由于换了工作会開始接触cocos2d-x.但并不意味着停止研究unity,以后有时间还是会继续的. 公司的cocos2 ...

  9. 使用android的mediaplayer做成 一个demo,欢迎测试使用

    附件是为一个定制视频产品而简单的写了一个demo,用来说明android的mediaplayer是如何使用的. http://files.cnblogs.com/guobaPlayer/palyerD ...

随机推荐

  1. 《GK101任意波发生器》升级固件发布(版本:1.0.2build198)

    一.固件说明: 硬件版本:0,logic.3 固件版本:1.0.2.build198 编译日期:2014-09-17 ====================================== 二. ...

  2. springMvc文件下载

    //主要看导入的是那些类 import com.ibm.db.service.ITopicService;import org.apache.commons.io.FileUtils;import o ...

  3. maven仓库私服配置

    私服访问地址:[[http://192.168.1.252:9080/nexus/content/groups/public/ 地址]] 1. 打开eclipse/myeclipse的maven插件: ...

  4. UIButton 去除按下效果(阴影)

    [btn setImage:[UIImage imageNamed:@"test.png"] forState:UIControlStateNormal];btn.adjustsI ...

  5. navicat for mysql 10.1.7注册码

    终于找到一个可用的了:名,组织,注册码都是:NAVN-LNXG-XHHX-5NOO 还有一个 注册码:NAVH-WK6A-DMVK-DKW3名称和组织不用填写   好像都可以用

  6. add active class

    根据URI添加菜单的active css class Active item item in menu: <?php function aim($page) { if(stristr($_SER ...

  7. 图片lightbox2

    1. 官网下载 http://lokeshdhakar.com/projects/lightbox2/ 2.引入 css  jquery  js 3. HTML格式 <a href=" ...

  8. css背景图片定位练习(一)

    首先准备一张雪碧图,Like this 背景图片的定位方法有3种,比较常用的两种为 关键字:background-position: top left; (top/bottom/cennter/lef ...

  9. springmvc返回值、数据写到页面、表单提交、ajax、重定向

    实验是在前一篇文章的项目上做的: 数据写到页面 后台往前台传数据 TestController添加 /** * 方法的返回值采用ModelAndView, new ModelAndView(" ...

  10. ArcGIS API for Silverlight动态标绘的实现

    原文:ArcGIS API for Silverlight动态标绘的实现 1.下载2个dll文件,分别是: ArcGISPlotSilverlightAPI.dll 和 Matrix.dll 其下载地 ...