VS2005下CEGUI0.6.1安装与编译

来源:互联网 发布:公安部交管局2016数据 编辑:程序博客网 时间:2024/06/06 18:35

 

VS2005下CEGUI0.6.1安装与编译

新一篇: [转载]CEGUI如何输入中文 | 

 文章部分来自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(小龙所说)

 

datefile的相对路径是可以更改的,
在文件CEGuiBaseApplication.cpp中:

#ifndef CEGUI_SAMPLE_DATAPATH
 
#define CEGUI_SAMPLE_DATAPATH "../datafile"

endif
可以修改成你想要的任意路径,不过这样的话,你的datefile文件夹就又要挪位置了。“

 

现在可以运行了~界面出来了,感觉不错哦。

 

Kun(小龙)说的并不完全正确,而且又深奥,我看了半天,不得要领,而且出现了N多编译器错误,运行时错误,最后的最后终于正确运行了,可以又没法选择渲染器。(纳闷中),于是不敢再按照小龙说的,自己琢磨了下CEGUISamples.sln(这篇文章里所讲的它都有),于是,终于可以成功运行。

当然,更多技术层面的东西以及为什么,你可以到小龙的CSDN BOLG去看。闻道有先后。他可是高手。偶比较懒,另外,偶也还是新手。只能一步步摸索了。摸索到的东西,我乐意跟大家分享。

 

例子可以运行了,那我们的helloworld呢。以后创建的helloworld就象刚才工程那么设置好了,把它添进解决方案,依赖设置好,然后,一切就变得很简单。接下来就不是偶能够教你的了。自己琢磨例子吧。(其实偶也不会~正在学)

 

特注:应用程序正常初始化(0XC0150002)失败。可以通过安装vs2005sp1补丁来解决。这个补丁我只装了不到一个小时的说~偶电脑不是很好,1.8CPU,512内存如此而已~。

原创粉丝点击