由於最近項目需要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。

