從源碼編譯CEGUI for OGRE 的配置

來源:互聯網
上載者:User

write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie

討論新聞群組及檔案

   

    現在在國內做遊戲,似乎怎麼都繞不開OGRE和CEGUI的學習,因為他們實在是太流行了。。。。。OGRE在Google中搜尋game engine長期排在第一,而CEGUI又幾乎是OGRE的官方UI。。。畢竟不是蓋的。我第一份工作的時候就做過一些CEGUI相關的工作,(但是那時候引擎不是OGRE)但是一直沒有太深入的學習,然後在遊戲開發的路上繞了很大一圈,接觸了OpenGL(ES),以及各色2D,3D引擎,最後似乎還是回到了OGRE和CEGUI,所以還是有些感慨。。。。。。

    當自己需要從頭開始做某些基礎工作的時候,與拿著成熟的架構和工程感覺還是有些不一樣的。比如CEGUI和OGRE的配置。。。。。。。

    主要參考資料來自於《Building CEGUI for Ogre / OgreRenderer
》。

    現在(2010.9.13)CEGUI的最新版是0.72,到這裡下載
。(源碼版本)

    然後,將CEGUI解壓到某個地方。我這裡選擇的是OGRE的目錄下。

此時,CEGUI-0.7.2/projects/premake中可以看到批處理build_vs2008.bat,運行一下就可以得到想要的VS2008工程,第一次我嘗試的時候編譯此工程,然後拷貝相關的lib,dll到OGRE的相關目錄,會發現還是少一個檔案,debug版本是CEGUIOgreRenderer_d.lib,然後我發現還需要配置。這裡感覺就沒有那麼直觀了。。。。。。。。。不屬於work out of box,這也是本文寫作的唯一有效目的。。。。。

配置:

1。在批處理的目錄下的config.lua檔案中,修改如下兩行內容:

OGRE_PATHS = { "..", "include/OGRE", "lib" }

OIS_PATHS = { "..", "include/OIS", "lib" }

這裡第一個字串的路徑根據你將CEGUI解壓的地方來配置,我這裡由於CEGUI已經解壓到OGRE的目錄下,所以僅僅使用父目錄就可以了。

2。在config.lua中,將OGRE_RENDERER那一行設為true,如下:

OGRE_RENDERER = true

3。在新版的OGRE中增加了對boost的依賴,所以還需要配置一下boost。(修改CEGUI_EXTRA_PATHS的內容)

我這裡是:

CEGUI_EXTRA_PATHS = {

     { "../boost_1_42", "", "lib", "CEGUIOgreRenderer" },

}

此時會發現CEGUI的solution中會多出一個CEGUIOgreRenderer的工程。並且,經過前面的配置,路徑都已經配置好了。

這裡有些驚喜的是,發現了irrlicht相關的東西,呵呵,將來也可以嘗試,個人對irrlicht的簡單易用也印象深刻,不知道在學了OGRE後,下次還有沒有機會再次使用。

然後,編譯就好了,會報一堆的警告。。。。。。。。。。。。。感覺這些代碼寫的都有問題。。。。。在公司的代碼裡面,經常是一句warning都不能有的,而且這些waring都是類型轉換警告。。。。估計在某些時候肯定會有問題。。。暫時不管了。

事實上,最後還會有個錯誤,

LINK : fatal error LNK1104: cannot open file 'OgreMain_d.lib'

因為配置的時候好像不能分debug/release來配置,(前面的文檔沒有講這一點,我也沒有深究了。。。。也許有辦法吧)而OGRE的lib目錄事實上又分debug/release子目錄的。。。。。所以,其實看起來蠻自動化的配置,最後還是少不了手動幹預一下。

手動修改lib目錄後,問題解決。

此時將編譯出來的lib,dll都拷貝到OGRE的相關目錄,(因為我不準備修改CEGUI,所以簡單的就拷貝了,需要修改CEGUI的,可以直接修改CEGUI工程配置,設定為編譯後拷貝到相應目錄)就可以直接在OGRE中使用CEGUI了,只需要再配置工程的CEGUI include目錄就好。

然後,當遇到過這麼多坑以後,滿以為總該順利了。。。。。。事實上,還有一個大坑在前面等著你,在最新的CEGUI版本中,你會遇到“應用程式正常初始化(0xc0150002)失敗”錯誤,而且不會給你任何頭緒。。。。。其實我費了這麼多勁,非要從源碼編譯CEGUI和OGRE,而不是使用各自的SDK,就是因為使用SDK的時候碰到這個問題了,從經驗判斷應該是庫的編譯版本不匹配的問題,結果我自己將所有的源碼都編譯了一次了,還是有問題。。。。。。。。。無奈之餘,在網上搜尋了一下,碰到這個問題的人還不是少數。

這個哥們描述的背後的故事
。。。。。還提供了hack解決方案,牛,可惜我是用VS2008的,VS2005那個補丁不適合我,運行安裝不了,我也還是希望通過正常的補丁途徑解決。而這個哥們提供了完善的解決方案
。基本上,簡單的說,VS2008的解決方案就是下載正確的依賴檔案VC90
那個,或者直接下CEGUI SDK VS2008的SDK
,只是千萬不要下VC80任何相關的東西。。。。(我很鬱悶MS竟然不讓VS2008在這種程度上支援VS2005,起碼也能夠讓任何VS2005編譯的東西在VS2008得到直接的支援啊)然後為自己的VS2008打上SP1補丁,就好了。這個問題真的折騰了我挺久,希望大家不要再繼續被折騰了。。。。。。。。。。。。。

 

原創文章作者保留著作權 轉載請註明原作者 並給出連結

write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.