ogrenewt配置

来源:互联网 发布:淘宝复制大师 编辑:程序博客网 时间:2024/05/22 04:47

ogrenewt配置

 

参考:http://bbs.gameres.com/showthread.asp?threadid=114480

参考了一下这个人写的方法,觉得不错,另外自己也遇到了许多新的问题,这里另附说明

一, 准备
a) Ogre
OgreNewt 只不过链接Ogre 和Newton而已,所以你需要下载Ogre。我用的是OgreSDKSetup1.4.8_VC71.exe (我是用VS2003平台的)你根据你的开发平台下载安装包。官方下载地址:
http://www.ogre3d.org/index.php?option=com_content&task=view&id=411&Itemid=131

b) Newton
http://www.newtondynamics.com/downloads.html
我下的是Newton Game Dynamics SDK 1.53

c) TortoiseSVN
这个是为了获取 OgreNewt 开发包的一个工具,它不是必须的,但是用它会比较方便。我是在这里下载的:
http://www.xdowns.com/soft/38/39/2007/Soft_38735.html

二, 安装
不需多解释,安装各个软件。我的Ogre 是安装在(默认的):
C:/OgreSDK
Newton是安装在(默认的):
C:/Program Files/NewtonSDK
TortoiseSVN就随便你自己了。。。。。。

三, 获取OgreNewt
a) 找个你喜欢的文件夹,随便挑的,例如我的: G:/OGRE_PROJ/OgreNewton
进入这个OgreNewton ,鼠标右键--TortoiseSVN--Export(我认为你的TortoiseSVN安装没有什么问题,如果没有TortoiseSVN选项那你自己检查你的安装)

b) URL of repository 填入
https://ogreaddons.svn.sourceforge.net/svnroot/ogreaddons/trunk/ogrenewt
Export directory 就是当前文件夹啦。。。。

c) OK 开始下载吧。。。。。。。
(看你的网速咯,不过服务器是在外国的,用教育网的,我是学生,我用的是教育网,那你最好设置下电信代理。具体自己看看这个软件了)
就在我废话的时候 “当前文件夹“已经下载好了。

四, 运行Demo
找到OgreNewton的目录,启动个demo先。。。我的VS2003,我当然选择OgreNewt_vc71.sln。更高版本就用另外一个。。
首先,需要编译工程OgreNewt_Main….我是编译Release_DLL。编译错误是
LINK : fatal error LNK1181: 无法打开输入文件“newton.lib”(不知道别人会不会,在我这里是出现的)
解决:找到各个项目的属性:链接器》》》常规》》附加库目录》》把../../../../NewtonSDK/sdk/dll改成绝对路径。。比如我的是C:/Program Files/NewtonSDK/sdk/dll。对于每个工程都是这样。
还要在属性:链接器输入中 》》附加依赖项 中添加OIS.lib
这个时候OgreNewt_Main应该能编译成功了。。。。
在OgreNewton/OgreNewt_Main/lib/release_dll会生成OgreNewt_Main.dll和OgreNewt_Main.lib。这是供其他工程使用的。。。。

接下来编译其他工程吧。。我是编译Release模式的。。
类似上面的,可能会出现LINK : fatal error LNK1181: 无法打开输入文件“OgreNewt_Main.lib”
老办法:属性:链接器》》》常规》》附加库目录》》添加OgreNewton/OgreNewt_Main/lib/release_dl的路径,我直接把绝对路径加进去了。

再次编译,通过了,弹出缺少dll的报错对话框了。。。

接下来把必须的dll拷贝到OgreNewton/demos/bin/release(这是一种方法)
必须的是啥?
Newton.dll  (NewtonSDK/sdk/dll)
OgreMain.dll
。。。。。。     很多个
你可以把C:/OgreSDK/bin/release下面的dll拷过来。。应该上够用了。。

可能还有错误,根据错误搞定吧:比如
Demo4 缺少了OIS.lib
Demo6 缺少了OIS.lib
属性:链接器输入中 》》附加依赖项 中添加OIS.lib

新问题

1、

/OgreNewtonFrameListener.cpp(56) : error C2039: 'getWorldOrientation' : is not a member of 'Ogre::SceneNode'
        d:/program files/ogresdk/include/OgreSceneNode.h(52) : see declaration of 'Ogre::SceneNode'
./OgreNewtonFrameListener.cpp(65) : error C2039: 'getWorldPosition' : is not a member of 'Ogre::SceneNode'
        d:/program files/ogresdk/include/OgreSceneNode.h(52) : see declaration of 'Ogre::SceneNode'
./OgreNewtonFrameListener.cpp(74) : error C2039: 'setNormaliseNormals' : is not a member of 'Ogre::Entity'
        d:/program files/ogresdk/include/OgreEntity.h(75) : see declaration of 'Ogre::Entity'
OgreNewtonApplication.cpp

这些错误貌似很多不过都不很重要,听“免费打工仔”大哥说是版本问题,http://ogre3d.cn/forums/bbs/viewthread.php?tid=491

不过我直接做了修改,将getWorldOrientation改为getOrientation,getWorldPosition改为getPosition,另外经无关紧要的错误直接注释掉了,不过运行起来看没什么问题。以后有了在说吧,这个是版本问题

2、找不到OgreNoMemoryMacros.h,这就是明显的版本问题了,因为这个头文件是1.4版本以前的,1.6版本之后被取消了.你可以选择放弃这个工程或者下载一个1.4版本的ogre然后拿出这个头文件,最根本的你要考虑从新下载一下最新版本的demo

另外,要将OgreSDK/bin/release目录下的那些dll拷过去,你可以参考plugin.cfg和一些错误提示,拷过去

最后说一下,运行成功之后你只能在OgreNewton/demos/bin/release文件夹下运行那个exe不能在vs中跑起来,不知道是为什么~~

原创粉丝点击