现在的位置: 首页 > 综合 > 正文

VS2005下CEGUI0.6.1安装与编译

2013年05月30日 ⁄ 综合 ⁄ 共 3977字 ⁄ 字号 评论关闭

 文章部分来自http://blog.csdn.net/kun1234567/archive/2008/04/08/2259450.aspx但是我按照他安装的并不能运行,而且现在已经出了SDK跟BIN版本,完全不必自己编译源代码了。之所以贴出来,算是一个补充吧

CEGUI 0.6.1安装与配置

第一.   什么是CEGUI?

CEGUI是一个游戏UI库,开源,使用XML作资源定位,支持lua脚本,支持多字节语言的显示,功能强大且灵活,目前的稳定版本是0.6.1bug和未完成的东西都不少,然而这也是它的魅力之一,我们可以对其进行修改和扩充。使用CEGUI完全可以制作出一流水准的游戏UI来(引自互联网某人)。目前ORGE已经放弃开发其自身的UI而使用CEGUI,可见,CEGUI潜力巨大。另外,著名的游戏《天龙八部》使用的核心之一就是:ORGECEGUI

 

第二.   下载与安装。

CEGUI官方网站:http://www.cegui.org.uk/wiki/index.php/Main_Page,目前最新版本0.6.1.偶向来都是偷懒人士,既然有现成的SDK,那为何还要自己编译呢(仅限于WINDOWS)。下载完SDK,解压,放到C:/CEGUI_SDK,例如。然后把C:/CEGUI_SDK/BIN下的东西全复制到C:/WINDOWS/SYSTEM32里面去。(当然也可以不复制,偶是懒人,懒得设置些乱七八糟东西)

然后打开VS2005,工具,选项,项目和解决方案,VC++目录,包含文件,

输入(或者选择)

C:/CEGUI_SDK

C:/CEGUI_SDK/INCLUDE

C:/CEGUI_SDK/dependencies/include

C:/CEGUI_SDK/Samples/common/include

好吧,也许有人会骂我是大笨蛋,骂贝。偶是懒人,不加的后果就是编译错误,错了你们就知道为什么了。

库文件:

C:/CEGUI_SDK/LIB

C:/CEGUI_SDK/dependencies/lib

编译器就到此设置完毕。

 

第三.   HELLOWORLD

吃东西得慢慢来。在创建HELLOWORLD之前,你可不必着急把sample里面的例子拿出来编译,(我就是这么作的,结果,。。。。。N个错误和LNK不说了。。。。),令我纳闷了许久,为什么sample的例子可以正常编译而自己考出来就不得了呢。难道以后创建工程都要在sample底下创建了吗。非也。

但也不全错。Sample为我们创建了一个框架。我们离不开sample~至少在成为高手之前。使用sample的框架,我们就可以很轻易的创建自己的HELLOWORLD。这不是扯淡。Sample为我们作的好比MFC框架,你是愿意自己写SDK呢还是使用MFC创建一个窗口?答案是显然的。这里把sample框架比作MFC也许有点不恰当。好吧,反正就那么回事。

在遭遇找不到文件CEGUISampleHelper.dllCEGUISampleHelper.lib等等焦头烂额的错误之前还是乖乖按照步骤去作把。别问为什么,做完自然明白。

C:/CEGUI-SDK/Samples/common下的INCLUDE SRC里面的东西拷贝到D:/COMM(- -!我真的是太懒得说了)

简单介绍一下每个文件的作用:

CEGuiBaseApplication.h           // *必须的
CEGuiD3D81BaseApplication.h
       // DX8.1渲染层
CEGuiD3D9BaseApplication.h
       // DX9.0渲染层 如果没有安装DX9.0SDK,就不要包含
CEGuiIrrlichtBaseApplication.h
    // Irrlicht渲染层 如果没有安装Irrlicht1.4SDK,就不要包含
CEGuiOgreBaseApplication.h
        // Ogre渲染层    如果没有安装Irrlicht1.4SDK,就不要包含
CEGuiOpenGLBaseApplication.h
      // OpenG渲染层 如果没有安装任何SDK,就是必须的
CEGuiRendererSelector.h
        // *必须的
CEGuiSample.h
                 // *必须的
CEGUISamplesConfig.h
          // 该文件在你使用OgreOpenGL时是必须的
Win32AppHelper.h
              // 该文件在你使用DX9.0渲染层时是必须的
Win32CEGuiRendererSelector.h
      // *必须的

///以上文件作用描述来自踏入神的领域的CSDN BOLG作者kun1234567 昵称kun(小龙)

经由一次失败(渲染器为空)之后,我不再按照他所说的文件来删改,也可能是由于编译器设置错误。总之,最后包含如下几个文件:

CEGuiBaseApplication.cpp

CEGuiBaseApplication.h

CEGuiD3D9BaseApplication.cpp

CEGuiD3D9BaseApplication.h

CEGuiOpenGLBaseApplication.cpp

CEGuiOpenGLBaseApplication.h

CEGuiRendererSelector.cpp

CEGuiRendererSelector.h

CEGuiSample.cpp

CEGuiSample.h

CEGUISamplesConfig.h

DeviceReset_Direct3D9.cpp

Win32AppHelper.cpp

Win32AppHelper.h

Win32CEGuiRendererSelector.cpp

Win32CEGuiRendererSelector.h

多点也没啥,(再多我可不敢保证了,反正加那个GTK我编译出错了),明显没必要的去掉就行了。我就是这么懒。

 

第四.   项目的编译器设置

打开VS2005,新建-从现有代码创建项目-选择D:/COMM

选中这个项目。修改他的属性。(记得选release,反正我就是懒~)

项目-属性-配置属性-常规-输出目录:先前我们建立的./release(比较习惯VC6)
项目-属性-配置属性-常规-中间目录:./release

项目-属性-配置属性-项目默认值-配置类型:动态库(.dll)。
项目-属性-配置属性-项目默认值-字符集:使用多字节字符集。
项目-属性-配置属性-C/C++ - 预处理器-预处理定义:

_CRT_SECURE_NO_DEPRECATE

HAVE_CONFIG_H

CEGUISAMPLE_EXPORTS

项目-属性-配置属性-连接器-输入-附加依赖项:
CEGUIBase.lib

freeglut.lib

OpenGLGUIRenderer.lib

DirectX9GUIRenderer.lib

GLU32.lib

OpenGL32.lib

项目-属性-配置属性-连接器-系统-子系统-windows

多嘴一句:某次运行vs.net 2005时就弹出对话框说无法找到MSVCR80D.dll文件。在网上查了一下,原因好像是因为fat32的文件系统的时间戳有问题,ntfs分区下就没这个问题解决方案是:在编辑状态下,项目-属性 - 配置属性 - 清单工具,将右面的使用FAT32解决办法选为即可

然后开始编译这个comm项目,应该顺利通过。看好release文件夹下的comm.dll~这可是个好东西。

 

第五.第一个可以‘独立’(脱离sample目录)运行的例子程序

然后把例子里面的随便一个例子的cpp和头文件拷贝出来,例如我拷贝的就是FalagardDemo1里面的代码,放到桌面上~就成了

桌面/ FalagardDemo1/ Sample_FalagardDemo1.h

桌面/ FalagardDemo1/ Sample_FalagardDemo1.cpp

如刚才comm项目一样,点解决comm方案(不是项目),文件-新建-从现有代码创建项目。选择桌面的 FalagardDemo1这个文件夹,然后手动把这文件夹里面的文件.h.cpp添加到VS2005.

一切完毕以后,等等!别着急编译撒。

FalagardDemo1项目。还需要配置他的属性。(当然本人配置的是release属性,反正我就是懒)

项目-属性-配置属性-项目默认值-配置类型:Windows应用程序(.exe)。
项目-属性-配置属性-项目默认值-字符集:使用多字节字符集。
项目-属性-配置属性-C/C++ - 预处理器-预处理定义:改为
_CRT_SECURE_NO_DEPRECATE

HAVE_CONFIG_H

项目-属性-配置属性-连接器-输入-附加依赖项:
CEGUIBase.lib
debug版本的就是CEGUIBase_d.lib

项目-选择项目依赖项-comm(瞧,我们还是需要sample的框架)

项目-属性-配置属性-连接器-系统-子系统-控制台。

然后编译器的设置就完毕了。

别忘记设置FalagardDemo1为启动项目。

第六.最终的成功与失败?

编译~应该一切顺利?2成功~OMG,成功了。等等,别着急运行,好吧,你还是运行了。祝贺你收到一个dll找不到的错误。那就把刚才生成的comm.dll复制到桌面的 FalagardDemo1文件夹里面咯。等下~你又运行了。好吧,又是一个异常。那么,别问为什么,把C:/CEGUI-SDK/Samples下的datafiles文件夹复制~粘贴到你桌面上吧。也就是跟FalagardDemo1同级的目录。为什么呢?正如kun(小龙所说)

抱歉!评论已关闭.