如何配置VS下的ogre环境.docx
- 文档编号:3569867
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:12
- 大小:1.34MB
如何配置VS下的ogre环境.docx
《如何配置VS下的ogre环境.docx》由会员分享,可在线阅读,更多相关《如何配置VS下的ogre环境.docx(12页珍藏版)》请在冰豆网上搜索。
如何配置VS下的ogre环境
如何配置VS2008下的ogre环境
需要的软件:
【1.OgreSDK_vc9_v1-8-1.exe(这个目前比较新,当然你也可以下老的版本)】
【2.MicrosoftDirectXSDK(June2010)开发包及以上版本】
【3.VS2008及VS2008SP1补丁】
我的电脑环境:
Win7、VS2008、OgreSDK_vc9_v1-8-1.exe、MicrosoftDirectXSDK(June2010)
在这里不再讲述VS2008、DirectXSDK2010开发包的安装,主要讲OGRE的环境配置
一、安装Ogre3D引擎
【1.打开http:
//www.ogre3d.org/download/sdk.的链接】
【2.下载合适的安装包,我下的是OgreSDK_vc9_v1-8-1.exe,这是目前比较新】
【3.把SDK的安装程序复制到你希望把OgreSDK放置的文件夹里】
【4.双击安装程序,这会启动一个自解压缩程序】
我输入了E:
\ProgramFiles\,它会自动新建一个OgreSDK_vc9_v1-8-1文件夹
【5.现在你应该得到一个名字类似于OgreSDK_vc9_v1-8-1.exe的文件夹】
【6.打开该文件夹。
文件夹的内容应该像下面的截图】
2、配置环境
【配置环境变量】(应该可以不配,直接输入路径应该也可以,最好配上,会比较方便)
计算机-高级系统设置-高级-环境变量-系统变量-新建一个环境变量叫OGRE_HOME,它的值是ogre目录
(我的电脑上值是E:
\ProgramFiles\OgreSDK_vc9_v1-8-1)。
【配置vs2008路径】
进入vs2008,依次打开“工具”“选项”,弹出个对话框,在左边依次选择“项目和解决方案”“VC++目录”,如下图
【在“包含文件”中,添加以下3项,如下图】
E:
\ProgramFiles\OgreSDK_vc9_v1-8-1\boost
E:
\ProgramFiles\OgreSDK_vc9_v1-8-1\include\OGRE
E:
\ProgramFiles\OgreSDK_vc9_v1-8-1\include\OIS
或者(没有配环境变量就不能这样写了)
$(OGRE_HOME)\boost
$(OGRE_HOME)\include\OGRE
$(OGRE_HOME)\include\OIS
【在“库文件”中,添加2项】
E:
\ProgramFiles\OgreSDK_vc9_v1-8-1\boost\lib
E:
\ProgramFiles\OgreSDK_vc9_v1-8-1\lib\Debug
或者
$(OGRE_HOME)\boost\lib
$(OGRE_HOME)\lib\debug
如果要用release编译的话还要加上1项
E:
\ProgramFiles\OgreSDK_vc9_v1-8-1\lib\release或$(OGRE_HOME)\lib\release
【编译OpenCVDebug和Release版本库】(会遭遇CMake问题)
1)用VS2008打开OgreSDK_vc9_v1-8-1文件夹下面的OGRE.sln文件,可以看到解决方案
有34个项目。
(我的是E:
\ProgramFiles\OgreSDK_vc9_v1-8-1\OGRE.sln文件)
2)现在如果直接将它进行编译、链接,生成项目的话,在最后一个SampleBrowser会产生
一个诡异的预链接错误:
Project:
errorPRJ0019:
某个工具从以下位置返回了错误代码:
"正在执行生成后事件..."
3)现在有两种方法可以解决它(如果不想安装CMAKE那第二种方法你可以不用看了)
【第一种方法】(较简单)
在“解决方案管理器”里找到最后一项“SampleBrowser”,在它上面右键->“属性”。
在上面“配置”里选择"所有配置",然后再左边依次点“配置属性”“生成事件”“预链接事件”,把右边的“在生成中排除”设为“是”。
(这步貌似对程序没什么影响)最后直接进行debug和release模式的生成,这会用上很长时间。
【第二种方法】(可以在网上搜下更详细的用CMake构建Ogre工程,
下载CMake2.8或以上版本:
http:
//www.cmake.org/files/v2.8/cmake-2.8.2-win32-x86.exe并安装。
在Cmake目录下的Bin文件找到cmake-gui.exe双击,分别输入路径
Whereisthesourcecode:
OGRESDK路径
Wheretobuildthebinaries:
新建的目录的位置
单击屏幕下方的'Configure'按键。
选择你的目标编译平台,例如"VisualStudio92008"当系统提示是否创建构建目录的时候选择'Ok',等待configure执行结束,屏幕上现在会有一些配置设置,并用红色标记(这是用来指出你是第一次看到他们)。
你可以在这里手动配置这些选项,不过现在我们只需要再次选择'Configure'等运行结束了选择"Generate"按键。
先在VS2008里打开OGRE项目(打开OgreSDK_vc9_v1-8-1下面的OGRE.sln文件即可),在最下面那个叫SampleBrowser,右键点击把它设置为我们的启动项目。
然后再右键点击,属性,生成事件,预链接事件,在右边的“命令行”路径那里比对一下,看看双引号里的路径是不是自己安装的cmake的路径,如果不是的话就将其改为本地cmake.exe的路径,比如我把CMAKE装在E盘根目录,那就应该填的是"E:
\ProgramFiles\Cmake2.8\bin\cmake.exe".后面的参数不要变就行。
如果不一致的话,可能会报这样的错误:
Project:
errorPRJ0019:
某个工具从以下位置返回了错误代码:
"正在执行生成后事件..."
用这个向导就可以快速创建简单的OGRE程序了,只需“文件”“新建”“项目”,在VisualC++下就能看到OGREApplication建立向导了。
不过用它创建的程序依然会出现前面那个诡异的预链接错误,随便选一种方法即可解决。
【现在可以去编译OGRE.sln文件了】
1.、找到Ogre3D的文件夹,打开Ogre3d.sln解决问题方案文件
2、在解决问题方案上右键选择“生成解决问题方案”
3、VisualStudio会构建示例程序,这会消耗掉一些时间,所以在编译没有完成之前最好是泡上杯茶喝喝
4、若一切顺利,找到Ogre3D/bin文件夹
5、运行SampleBrowser.exe.
6、第一次会出来一个窗口,选择rendersystem.默认情况下会给你两个选择:
一个是DIRECTX一个是OPENGL
选择我们安装好的DIRECX,如果不想全屏运行,可以把FullScreen改为NO,然后点OK。
7、然后你应该看到如下给力的结果:
你可以试着运行这些例子看看效果!
三、在新项目里运行
【新建-项目-win32控制台程序-输入工程名OgreHello-确定】
【新建.CPP文件,输入文件名main】
【在“解决方案管理器”,右建单击“OgreHello”-“属性”-“配置属性”-“调试”-在“工作目录”添加:
$(OGRE_HOME)\bin\Debug】
【在“配置属性”-“链接器”-“输入”-“附加依赖项”添加OgreMain_d.libOIS_d.lib】
(当想使用release版本的时候,要改成OgreMain.lib和OIS.lib。
)
然后复制如下代码到main.cpp文件中:
#include"Ogre\ExampleApplication.h"
classExample1:
publicExampleApplication
{
public:
voidcreateScene()
{
Ogre:
:
Entity*ent=mSceneMgr->createEntity("MyEntity","Sinbad.mesh");
mSceneMgr->getRootSceneNode()->attachObject(ent);
}
};
intmain(void)
{
Example1app;
app.go();
return0;
}
注意:
如果新建的是win32项目文件时会报这样的错:
errorC2664:
“MessageBoxW”:
不能将参数2从“constchar*”转换为“LPCWSTR”与指向的类型无关;转换要求reinterpret_cast、C样式转换或函数样式转换
还要在“配置属性”-“常规”-“字符集”改为“使用多字节字符集”
如下测试代码:
#include
classTutorialApplication:
publicExampleApplication
{
protected:
public:
TutorialApplication()
{
}
~TutorialApplication()
{
}
protected:
voidcreateScene(void)
{
mSceneMgr->setAmbientLight(ColourValue(1,1,1));
Entity*ent1=mSceneMgr->createEntity("Robot","robot.mesh");
SceneNode*node1=mSceneMgr->getRootSceneNode()->createChildSceneNode("RobotNode");
node1->attachObject(ent1);
node1->scale(.5,1,2);
node1->yaw(Degree(-90));//y轴
Entity*ent2=mSceneMgr->createEntity("Robot2","robot.mesh");
SceneNode*node2=mSceneMgr->getRootSceneNode()->createChildSceneNode("RobotNode2",Vector3(50,0,0));
//SceneNode*node2=node1->createChildSceneNode("RobotNode2",Vector3(50,0,0));
node2->attachObject(ent2);
node2->translate(Vector3(10,0,10));
node2->scale(1,2,1);
node2->pitch(Degree(-90));//x轴
Entity*ent3=mSceneMgr->createEntity("Robot3","robot.mesh");
SceneNode*node3=mSceneMgr->getRootSceneNode()->createChildSceneNode("RobotNode3",Vector3(100,0,0));
node3->attachObject(ent3);
node3->roll(Degree(-90));//z轴
}
};
#ifOGRE_PLATFORM==OGRE_PLATFORM_WIN32
#defineWIN32_LEAN_AND_MEAN
#include
INTWINAPIWinMain(HINSTANCEhInst,HINSTANCE,LPSTRstrCmdLine,INT)
#else
intmain(intargc,char**argv)
#endif
{
//Createapplicationobject
TutorialApplicationapp;
try{
app.go();
}catch(Exception&e){
#ifOGRE_PLATFORM==OGRE_PLATFORM_WIN32
MessageBox(NULL,e.getFullDescription().c_str(),"Anexceptionhasoccured!
",MB_OK|MB_ICONERROR|MB_TASKMODAL);
#else
fprintf(stderr,"Anexceptionhasoccured:
%s\n",
e.getFullDescription().c_str());
#endif
}
return0;
}
如果没什么问题,Ogre的环境配置完成了!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 配置 VS ogre 环境