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文件。
以下是编译完运行示例的图片: