由于最近项目需要CEGUI做界面,于是我去下载了CEGUI源码,但是却不知道怎么搭建。网上的教程都不是很详细,不能让我们这种新手理解,经过几天折腾,终于弄好了,特此记录下来。
1.下载官网CEGUI源码以及dependencies库,我下载的是0.8.4版本在此之前确保已经配置好了OPENGL或DX。
2.下载并正确安装cmake工具。
3.下载好后, 解压 cegui0.8.4 和 cegui-deps-0.8.x-src 到安装目录, 我选的是 E 盘.
接下来安装 cmake, 运行 camke, 拖动刚解压的 cegui-deps-0.8.x-src 文件夹下的 CMakeLists.txt 到 cmake 上.
点击 cmake 界面下的 Configure 按钮, 然后选择当前编译器版本 vs2013, 最后点击 Finish 按钮, 此时会开始加载 CMakeLists.txt 文件, 等它加载完毕.
再次点击 cmake 界面下的 Configure 按钮, 等界面变白后, 再点击 Generate 按钮.
此时, 会在工程建立路径下生成 CEGUI-DEPS.sln, 打开后右键解决方案 –> 批生成 –> ALL_BUILD Debug|Win32 + ALL_BUILD Release|Win32 对依赖库进行编译.
在编译过程中,如果是配置的OPENGL环境的话会遇到SAFESEH镜像不安全的问题。
解决方法:
1).打开该项目的“属性页”对话框。
2).单击“链接器”节点。
3).单击“命令行”属性页。
4).将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用
如果遇到此问题需要在debug和release模式下分别设置对应工程。(博主由于这个问题浪费了很多时间)
编译完成之后在 cegui-deps-0.8.x-src 文件夹下会出现 dependencies 文件夹, 将该文件夹移动到之前解压的 cegui-0.8.4 文件夹中, 然后这个 cegui-deps-0.8.x-src 文件夹就可以删掉了, 没啥用的样子.
接下来采用相同步骤对 cegui-0.8.4 进行编译, 此时需要手动设置 CEGUI的XML 解析器,即将 CEGUI_BUILD_XMLPARSER_EXPAT 设为 checked, 其他属性设置默认即可满足要求, 如下图:
Congigure 完成之后 Generate, 生成 cegui.sln 文件, 打开 cegui.sln.
右键 ALL_BUILD, 选择[属性], 选择[VC++目录], 设置[包含目录][库目录]为 dependencies 文件夹下的 include 和 lib 文件夹.
然后右键解决方案 –> 批生成 –> ALL_BUILD Debug|Win32 + ALL_BUILD Release|Win32 进行编译.
初次编译会报错.
点击错误
定位到 Sample_FontDemo.cpp 文件
第133行:
将(encoded_char*)”+ – ? B I W Y f n t ℹ ⇦ ⇧ ⇨ ⇩ ⌘ ☎ ☐ ☑ ⚖ ⚙ ⚠ ⛏ ✎ ✑ ✓ ✔ ✕ ✖ ❝ ❞ ➡ ⬀ ⬁ ⬂ ⬃ ⬅ ⬆ ⬇ ⬈ ⬉ ⬊ ⬋ ”
修改为(encoded_char*)”+111111111111111111111111″
第147行:
将每个 “⬀ ” 修改为”1″
定位到GameMenu.cpp文件
第691行:
将finalText += reinterpret_cast(“❚”)
修改为finalText += reinterpret_cast(“d”)
第717行:
将finalText += reinterpret_cast(“❚”)
修改为finalText += reinterpret_cast(“d”)
第749行:
将finalText += reinterpret_cast(“❚”)
修改为finalText += reinterpret_cast(“d”)
如果是OPENGL会遇到之前的SAFESEH镜像不安全的错误。
重新进行编译, 完成之后在 cegui-0.8.4 文件夹的 bin 文件夹下找到 CEGUISampleFramework-0.8.exe, 双击打开.
这时, 它会报个错:
我们将 dependencies 文件夹的 bin 文件夹里的文件全部复制一份到 cegui-0.8.4 文件夹的 bin 文件夹下, 再重新打开 CEGUISampleFramework-0.8.exe.
这里会遇到问题sample/sample.xml does exit问题,我在这里困惑了好久,最后在官网上找到了解决方法。http://cegui.org.uk/wiki/Building_CEGUI_for_Ogre_/_OgreRenderer
就是把你编译cegui-0.8.4文件目录下的sample文件夹复制到cegui-0.8.4根目录datafiles文件下,我这里是
然后继续运行该exe文件。
编译部分转自 http://www.smallcpp.com/small_508.php。