CEGUI:编译CEGUI

准备使用[CEGUI]作为游戏引擎的界面库,原先拟采用guichan集成SDL,但guichan目测很久未更新。

以下在Windows10,VS2015 Express,X64条件下进行编译CEGUI 0.8.4 。

编译依赖项

参见[官方文档],下载cegui-deps-0.8.x-src文件后,将CMakeLists.txt拖入CMake-gui中。注意默认的选项没有选择XML解析库,这会导致编译CEGUI时出现错误:

d_defaultXMLParserName is not a function...

勾选上CEGUI_BUILD_TINYXML,或者选择XERCES,另外我还选择了ZLIB。然后生成工程后,就可以编译成功。

编译CEGUI

将上一步生成的dependencies文件夹拷贝到cegui的根目录中,然后在cmake中点击configure,generate。系统会自动找到依赖项,

Could NOT find MINIZIP (missing:  MINIZIP_LIB MINIZIP_LIB_DBG MINIZIP_H_PATH) 
Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE) 
Could NOT find FRIBIDI (missing:  FRIBIDI_FOUND_ALL_LIBS FRIBIDI_FOUND_ALL_LIBS_DBG FRIBIDI_INCLUDE_DIR) 
Could NOT find DIRECTXSDK (missing:  DIRECTXSDK_LIB_PATH DIRECTXSDK_H_PATH DIRECTXSDK_MAX_D3D) 
Could NOT find D3DX11EFFECTS (missing:  D3DX11EFFECTS_LIB D3DX11EFFECTS_LIB_DBG D3DX11EFFECTS_H_PATH) 
Could NOT find IRRLICHT (missing:  IRRLICHT_LIB IRRLICHT_H_PATH) 
Could NOT find OGRE (missing:  OGRE_LIB OGRE_H_PATH OGRE_H_BUILD_SETTINGS_PATH) 
Could NOT find OIS (missing:  OIS_LIB OIS_H_PATH) 
Could NOT find DIRECTFB (missing:  DIRECTFB_LIB DIRECTFB_LIB_DBG DIRECTFB_H_PATH) 
Could NOT find OPENGLES (missing:  OPENGLES_LIB OPENGLES_H_PATH) 
Could NOT find XERCESC (missing:  XERCESC_LIB XERCESC_LIB_DBG XERCESC_H_PATH) 
Could NOT find LibXml2 (missing:  LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR) 
Could NOT find RAPIDXML (missing:  RAPIDXML_H_PATH) 
Could NOT find IL (missing:  IL_LIB IL_LIB_DBG IL_H_PATH) 
Could NOT find ILU (missing:  ILU_LIB ILU_LIB_DBG) 
Could NOT find FREEIMAGE (missing:  FREEIMAGE_LIB FREEIMAGE_LIB_DBG FREEIMAGE_H_PATH) 
Could NOT find CORONA (missing:  CORONA_LIB CORONA_LIB_DBG CORONA_H_PATH) 
Could NOT find PVRTOOLS (missing:  PVRTOOLS_LIB PVRTOOLS_H_PATH) 
Could NOT find Boost
Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
Some or all of the gtk libraries were not found. (missing:  GTK2_GTK_LIBRARY GTK2_GTK_INCLUDE_DIR GTK2_GDK_INCLUDE_DIR 
GTK2_GDKCONFIG_INCLUDE_DIR GTK2_GDK_LIBRARY 
GTK2_GLIB_INCLUDE_DIR GTK2_GLIBCONFIG_INCLUDE_DIR GTK2_GLIB_LIBRARY) 
Configuring done
Generating done

生成后编译,会有两个工程编译失败:

error C2001: newline in constant...

是因为demo程序中的字符编码问题。解决办法是选择出错的文件,文件->高级保存选项,选择Unicode - Codepage 1200并保存,再次编译即可全部成功!编译完成之后,会在lib文件夹下生成一大堆lib文件。

以下是编译完运行示例的图片:

CEGUI Demo 1.png


CEGUI Demo 2.png


CEGUI Demo 3.png