cegui配置整了好長時間了,在一位大牛幫助下終於搞定了,網上的教程大多是老版本的,cegui-0.8.2版的配置寥寥無幾,現在總結一下,獻給正在糾結的小白們。
准備工作
第一步,先下載cegui-0.8.2和CEGUI 0.8.x Dependency
http://www.cegui.org.uk/wiki/index.php/CEGUI_Downloads_0.8.2
第二,我們下載cmake,用於構建文件,cmake官網不太穩定,經常打不開,去這里下載吧,我們對cmake的使用也很簡單,只需學會如何構建文件即可,簡單了解一下如何使用即可
http://ishare.iask.sina.com.cn/f/7204325.html ,其他地方也可以.
然后安裝到電腦上,運行結果如下:
好了,准備工作做完了,現在我們開始編譯。
第一,把下載的文件解壓到任意目錄,但不要出現中文路徑,如圖兩個文件夾一個不能少
第二,構建cegui-deps-0.8.x-src文件,其目錄結構如上圖,要使用到的文件就是CMakelists.txt,這里面存放的就是構建的過程
首先,打開cmake,選擇目錄 ” cegui-deps-0.8.x-src“
然后點擊configure,做如下選擇,選擇自己的編譯器,看清楚啊,你可以打開自己的ide看一下版本
接着開始構建,過程顯示如下:
The C compiler identification is MSVC 16.0.40219.1 The CXX compiler identification is MSVC 16.0.40219.1 Check for working C compiler using: Visual Studio 10 Check for working C compiler using: Visual Studio 10 -- works Detecting C compiler ABI info Detecting C compiler ABI info - done Check for working CXX compiler using: Visual Studio 10 Check for working CXX compiler using: Visual Studio 10 -- works Detecting CXX compiler ABI info Detecting CXX compiler ABI info - done Configuring done
點擊 Generate就可以生成文件CEGUI-DEPS.sln,現在可以打開vs2010進行編譯了
先在debug下編譯,再在release下編譯,在vs中打開后直接F7,不用配置其他東西。完成后將需要將dependercied文件夾拷貝到cegui-0.8.2目錄下
第三,使用cmake構建cegui-0.8.2,過程同上,生成cegui.sln
編譯之前,先將 D:\cegui-0.8.2\dependencies\bin添加到系統環境變量path里面去
然后后編譯會出如下錯誤
錯誤1
error C2065: “CEGUI_NEW”: 未聲明的標識符
解決方法:將CEGUI_NEW 改為new
錯誤2,這是一大堆錯誤,打開源代碼看看,你就明白了,不過我不明白怎么會出現這種錯誤
3>Sample_FontDemo.cpp(134): error C2001: 常量中有換行符 3>Sample_FontDemo.cpp(147): error C2001: 常量中有換行符 2>GameMenu.cpp(692): error C2001: 常量中有換行符 2>GameMenu.cpp(694): error C2146: 語法錯誤: 缺少“)”(在標識符“d_botBarLabel”的前面) 2>GameMenu.cpp(717): error C2001: 常量中有換行符 2>GameMenu.cpp(719): error C2146: 語法錯誤: 缺少“)”(在標識符“d_topBarLabel”的前面) 2>GameMenu.cpp(728): warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件保存為 Unicode 格式以防止數據丟失 2>GameMenu.cpp(748): error C2001: 常量中有換行符 2>GameMenu.cpp(750): error C2146: 語法錯誤: 缺少“)”(在標識符“d_botBarLabel”的前面)
改為:(encoded_char*)"+11111111111111111111"
改為:"1"
改為:finalText += reinterpret_cast<const encoded_char*>("d");
改為:finalText += reinterpret_cast<const encoded_char*>("1");
改為:finalText += reinterpret_cast<const encoded_char*>("1");
現在好了,全部編譯成功。終於看到哦哦夢寐以求的結果了
還有一點需要注意,就是默認情況話運行WidgetDemo后會是程序崩潰,如下:
向那些無私奉獻的大牛小牛們致敬!謝謝你們。