OGRE入门学习整理1——使用Visula Studio 2008 创建可以带走的Ogre应用程序

 学习和使用OGRE也有一段时间了。对于OGRE也有一定的了解。

但是总感觉自己的知识不成系统,很松散,提不起来。

最近春节放假,正好有时间学习并且系统整理一下。

其实,我也是入门,很多东西还不清楚,希望有错误大家能够帮我指出。多谢了。

 

首先,这个教程是建立一个可以拷贝到u盘里面到处带着走的应用程序。

我是按照OGRE的教程来建立应用程序的。原文链接如下:

http://www.ogre3d.org/tikiwiki/Setting+Up+An+Application+-+Visual+Studio?tikiversion=Visual+Studio+2008+-+VC9

这个是一个比较不错的中文翻译:

http://ogre3d.cn/wiki/index.php?title=%E6%96%87%E6%A1%A3:%E4%BD%BF%E7%94%A8Visula_Studio_2008_%E5%88%9B%E5%BB%BAOgre%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F

按照上面两个教程建立的应用程序工程有一个缺点,就是不好移动。

我刚刚学习的时候也有这个问题,在一台电脑上的工程,复制到另一台电脑上面,编译运行无法通过。

当时也没有找到相关的教程。所以现在回首当年我傻傻的背着电脑到处跑的经历……

工作后,上面的问题更加突出了。按照上面教程建立的工程,上传到svn等服务器后,同事下载后是无法编译运行的。

所以,我这里建立的工程是可以到u盘里面到处带走的。

一样的部分我就抄上面的了。(*^__^*) 嘻嘻……

 

创建一个新的项目

开启 Visual Studio 2008
新建一个projct: 文件—新建—项目
为你的项目选择好一个路径,路径不能放在 SDK目录中,或者Ogre的source目录中。

File:vs08_01.jpg


点击 “确定”按钮,显示 win32程序向导

File:vs08_02.jpg


点击 下一步选择 windows 应用程序 和 空项目 这两个选项。点击 完成。

File:vs08_03.jpg


创建目录结构并添加文件

下载并且解压缩 [Ogre Wiki Tutorial Framework]http://www.ogre3d.org/tikiwiki/Ogre+Wiki+Tutorial+Framework 到你的目录,并且添加进项目中。

File:vs08_04.jpg

File:vs08_05.jpg

 

修改配置:

这个时候,编译运行会产生入下错误(我编译的是release版本,我的debug已经通过了,领会精神!):

1>------ 已启动生成: 项目: OgreTest, 配置: Release Win32 ------
1>正在编译...
1>TutorialApplication.cpp
1>.\src\TutorialApplication.cpp(17) : fatal error C1083: 无法打开包括文件:“TutorialApplication.h”: No such file or directory
1>BaseApplication.cpp
1>.\src\BaseApplication.cpp(17) : fatal error C1083: 无法打开包括文件:“BaseApplication.h”: No such file or directory
1>生成日志保存在“file://f:\OgreTest\OgreTest\Release\BuildLog.htm”
1>OgreTest - 2 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

 

修改如下:

首先将$(OGRE_HOME) 代表的SDK文件夹,这个拷贝到上面的项目文件夹下。并且将 文件夹名称从"sdk"改完 "OGRE_SDK”。

文件夹下内容如下:

文件夹下目录图

在解决方案管理器中,右击项目名,选择属性,弹出下面的对话框

File:vs08_06.jpg

修改项目属性如下: 

C/C++ | 常规 | 附加包含目录 : include;..\OGRE_SDK\include\OIS;..\OGRE_SDK\include\OGRE

生成项目,报错如下:

1>BaseApplication.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static unsigned int __cdecl Ogre::NedPoolingPolicy::getMaxAllocationSize(void)" (__imp_?getMaxAllocationSize@NedPoolingPolicy@Ogre@@SAIXZ)
1>BaseApplication.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static void __cdecl Ogre::NedPoolingPolicy::deallocateBytes(void *)" (__imp_?deallocateBytes@NedPoolingPolicy@Ogre@@SAXPAX@Z)
1>BaseApplication.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static void * __cdecl Ogre::NedPoolingPolicy::allocateBytes(unsigned int,char const *,int,char const *)" (__imp_?allocateBytes@NedPoolingPolicy@Ogre@@SAPAXIPBDH0@Z)
1>TutorialApplication.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static class Ogre::Quaternion const Ogre::Quaternion::IDENTITY" (__imp_?IDENTITY@Quaternion@Ogre@@2V12@B)
1>TutorialApplication.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME" (__imp_?AUTODETECT_RESOURCE_GROUP_NAME@ResourceGroupManager@Ogre@@2V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A)
1>TutorialApplication.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall Ogre::Light::setPosition(float,float,float)" (__imp_?setPosition@Light@Ogre@@QAEXMMM@Z)
1>TutorialApplication.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall Ogre::SceneManager::setAmbientLight(class Ogre::ColourValue const &)" (__imp_?setAmbientLight@SceneManager@Ogre@@QAEXABVColourValue@2@@Z)
1>F:\OgreTest\Release\OgreTest.exe : fatal error LNK1120: 135 个无法解析的外部命令
1>生成日志保存在“file://f:\OgreTest\OgreTest\Release\BuildLog.htm”
1>OgreTest - 136 个错误,2 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========


都是外部链接错误。

修改项目属性如下:

选择 Debug 
链接器 | 输入 | 附加依赖库     : OgreMain_d.lib OIS_d.lib
链接器 | 调试 | 生成调试信息   : 是 (/DEBUG)

选择 Release 

链接器 | 输入 | 附加依赖库 : OgreMain.lib OIS.lib
链接器 | 调试 | 生成调试信息 : 否


还有 Debug和Release 都要如下设置:

链接器 | 常规 | 附加库目录 : ..\OGRE_SDK\lib\$(ConfigurationName)

编译生成项目。顺利通过。

生成应用程序

1。选择 Debug或者 Release 配置
2。右键点击 项目,选择 生成。
如果有编译或者链接错误,那请按照错误提示,重新修改属性页选项或者其他。

从 OGRE_HOME 把配置文件拷贝到程序文件夹中

作为最后一步,你的程序运行需要拷贝一些额外的文件。

生成过程创建了一个bin文件夹,在bin下,又创建了 release 和 debug文件夹,这两个文件夹下,保存着你vs编译出来的不同编译开关下的可执行性文件和其他运行需要文件。

OGRE的框架将会在配置文件中寻找工作目录,而这些配置文件(.cfg文件),保存在 $(OGRE_HOME)\bin\debug 和 $(OGRE_HOME)\bin\release这两个文件夹下,请复制到你的bin文件夹下的响应文件夹下。

 

移动DLL文件:

将 \OGRE_SDK\bin\debug 文件夹下面的所有文件,移动到项目生成的Debug文件夹下;

将 \OGRE_SDK\bin\release 文件夹下面的所有文件,移动到项目生成的Release文件夹下;

移动资源文件:

将D:/ogre_src_v1-7-2/Samples/Media/文件夹整个复制到项目的根目录下,让它成为和Debug文件夹、Release文件夹同级的文件夹,不要放错位置。

分别打开Debug文件夹下的resources_d.cfg和Release文件夹下resources.cfg文件。

将这两个配置文件下的所有 "D:/ogre_src_v1-7-2/Samples/Media/" 字段都修改为 "../Media/"

注意:我的OGRE安装路径为 "D:/ogre_src_v1-7-2/" 如果,你的OGRE安装路径不一样需要修改的字段就不一样,酌情处理。



修改工作路径:

选择 所有配置: 

常规 | 输出目录          : ..\$(ConfigurationName)


这样就可以编译运行了。而且可以将这个ogre工程拷贝到u盘,在另一台电脑上编译运行。

啊~~我写blog好累人啊!鄙视

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值