|
面对官方Wiki上多如牛毛的安装介绍,弄得我是头晕眼花、不知其所云。我是在Ubuntu下用Anjuta开发。官方提供的方法还是5.04或6.10的,并没有最新的。不得以,只好自立更生。在研究了网上介绍的各种方法后,选取了如下这个方法。下面我要介绍的方法其实是很简单的。经过我亲自验证无误。因此写下这篇小文章,以期能够对一些朋友有些帮助。
一、安装环境
本文Ubuntu 7.04桌面版,我是从光盘安装的。如果你在安装上有问题,请查找Ubuntu官方网站寻求帮助,这不是本文的重点。
二、安装步骤
1、到QBIC Project下载ogre_cvs.sh脚本文件,以普通用户身份运行这个脚本,它就会自动下载编译安装OGRE,CEGUI,FREEIMAGE,OIS,Cg库文件以及其它所需的依赖包。在开始时要通过agp-get下载依赖包,你会被问及超级用户密码。后面,你还会被问到OGRE CVS的密码,由于我们是匿名用户,所以直接敲回车。
安装会花掉你一些时间,安装结束后,
OGRE库文件将被安装在以下位置:
*头文件在 /usr/include/OGRE
**.so文件在 /usr/lib和/usr/lib/OGRE
CEGUI库文件将被安装在以下位置:
*头文件在 /usr/include/CEGUI
**.so files在 /usr/lib
FreeImage库文件将被安装在以下位置:
** 头文件在 /usr/include
* *.so files在 /usr/lib
OIS库文件将被安装在以下位置:
* 头文件在 /usr/include/OIS
* *.so files在 /usr/lib
Cg库文件将被安装在以下位置:
* 头文件在 /usr/include/Cg
* *.so files在 /usr/lib
2、我也看过Anjuta官方主页上的2.X版,由于还没有最后release,所以我决定还是安装稳定版。Ubuntu源中就有1.2.4a,用新立得软件包管理器安装就行。
三、安装后的相关设定
安装后,别忘记进行相关设定,菜单栏中的设定->编译器与连接器设定。将上面提到的安装的头文件和库文件,分别添加到引用路径和函数库路径中。将OgreMain,CEGUIBase,CEGUIOgreRenderer添加到函数库中。在选项中的CFLAGS内填入-DEXT_HASH。
如果你想用例子架构开发你的程序,你还需要将OGRE安装目录/ogrenew/Samples/Common/include/添加到引用路径中。
确保plugins.cfg和resources.cfg这两个文件与main.cc在同一个文件夹而且是可执行的。然后,一定要编辑一下这两个文件,以保证文件里写的路径正确无误。否则,OGRE设置对话框中可能没有任何渲染库,或者是你在屏幕上或Ogre.log中收到一条类似Description: ../../Media/packs/OgreCore.zip - error whilst opening archive: Unable to read zip file这样的错误提示。
四、建立你的第一个程序
1、将main.cc里的代码替换为如下代码:
- #include "ExampleApplication.h"
- // Declare a subclass of the ExampleFrameListener class
- class MyListener : public ExampleFrameListener
- {
- public:
- MyListener(RenderWindow* win, Camera* cam) : ExampleFrameListener(win, cam)
- {
- }
- bool frameStarted(const FrameEvent& evt)
- {
- return ExampleFrameListener::frameStarted(evt);
- }
- bool frameEnded(const FrameEvent& evt)
- {
- return ExampleFrameListener::frameEnded(evt);
- }
- };
- // Declare a subclass of the ExampleApplication class
- class SampleApp : public ExampleApplication
- {
- public:
- SampleApp()
- {
- }
- protected:
- // Define what is in the scene
- void createScene(void)
- {
- // put your scene creation in here
- }
-
- // Create new frame listener
- void createFrameListener(void)
- {
- mFrameListener = new MyListener(mWindow, mCamera);
- mRoot->addFrameListener(mFrameListener);
- }
- };
- int main(int argc, char **argv)
- {
- // Instantiate our subclass
- SampleApp myApp;
- try {
- // ExampleApplication provides a go method, which starts the rendering.
- myApp.go();
- }
- catch (Ogre::Exception& e) {
- std::cerr << "Exception:\n";
- std::cerr << e.getFullDescription().c_str() << "\n";
- return 1;
- }
- return 0;
- }
复制代码
2、编译运行它。
3、程序正确运行后,会首先出现OGRE设置对话框,点确定后,启动程序。程序是一个空无一物的黑色屏幕,仅包含OGRE标志和每秒帧数显示屏。因为我们还没添加任何东西。按Esc退出。
五、后记:
虽然例子架构有许多优点,但并不是必须使用例子架构。对于更大一些的项目,也许你想写自己的架构,或者使用其他人写的架构和引擎。
|
|