博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OSG第一个Demo
阅读量:6118 次
发布时间:2019-06-21

本文共 2006 字,大约阅读时间需要 6 分钟。

环境: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输入下面的代码,这次显示一个滑翔机。
#include 
#include
void main(){ osgViewer::Viewer viewer; viewer.setSceneData(osgDB::readNodeFile("glider.osg")); viewer.realize(); viewer.run();}

 

编译出现的问题: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 #else16 #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

 

转载地址:http://fxlka.baihongyu.com/

你可能感兴趣的文章
类斐波那契数列的奇妙性质
查看>>
配置设置[Django]引入模版之后报错Requested setting TEMPLATE_DEBUG, but settings are not configured....
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>