轉自原文
http://www.cnblogs.com/lookof/archive/2010/03/06/1679633.html 這個問題我也遇到過,確定DX版本和VC版本對應就OK
Ogre3D官方于上個月末放出了1.7的穩定版本。據稱該版本與舊版1.6x比起來,改動幅度較大。因此作為一名Ogre使用用戶,“與時俱進”既是我的責任,又是變被動為主動的上乘戰略。于是,學習新的Ogre系統成為我計劃中的一部分。
與以往不同,新Ogre的編譯策略完全采用了CMake安裝方式。為此,你首先要下載CMake工具才能安裝Ogre。不過,官方在wiki中對如何安裝新Ogre進行了詳盡的說明,包括在哪里下載CMake以及如何使用它,都有step-by-step的指導。因此只要按照說明來,你“應該”可以順利地看到通過CMake釋放出的Ogre.sln。
之所以說“應該”,是因為種種原因,還是有相當大的幾率會遇到“挫折”。遇挫的可能性取決于與新Ogre有關聯的周邊配置。拿本人案例來說,就是要看你的DX SDK版本以及VC版本是否一致了。
具體我的悲慘編譯經歷如下:
. 在公司機子上下載Ogre1.7并按指導進行安裝,選擇VC2003編譯器編譯,一切順利,沒有見到任何阻礙。很快就看到了Ogre.sln;編譯Ogre.sln,全部順利生成成功。心想新Ogre的用戶體驗不錯嘛,沒想到這么順。注意,此機子的DX9 SDK版本是2009(March)的。
. 回家后重新下載Ogre1.7并安裝,打算給本本也升級至新版。本本的DX9 SDK版本還停留在05年的古董級。就這樣,開始,同樣的步驟(依然選擇了VC2003編譯器)——然后,所以但是卡殼了。CMake在處理RenderSystem_Direct3D9時出現問題,具體出錯信息想不起來了,抱歉。但稍稍分析一下即知,是找不到DxErr.h這個文件。經過google知道這是一個DX9 SDK新版本里的文件。于是,卸載舊的版本,選擇最新的DX9 SDK (2010 February版本,新鮮出爐的呀)安裝。
. 接著重新一開始的步驟——然后,終于見到Ogre.sln了,很好很強大。然后繼續Ogre.sln的編譯。經過近一個小時的編譯——全部生成——除了一個RenderSystem_Direct3D9的工程!我艸,又是它。分析得知,DxErr.h雖然有,但它里面用到的__in卻是一個無法識別的符號。繼續google,得知__in是存在于VC2005中的一個系統變量。換句話說,如果要使用DX9 SDK(2010 Feb)版,就要用VC2005來編譯工程了。
. 重新卸載了DX9 SDK(2010 Feb)版,下載了DX9 SDK(2009 March)版來裝。然后,再次開始編譯旅程——終于全部搞定!
從這里可以看到這個編譯過程實際上對 Ogre – DX9 – VC 這條鏈上的版本有相對嚴格的要求。Ogre – DX9的環節可能會出錯,同樣DX9 - VC的環節也可能會出錯。
Done~
ps: 順便一提,在參觀Ogre1.7的地形Sample時,點擊Start后會發現程序陷入“死掉”狀態,突然就那么不反應了。開始我以為又是什么bug所致,追蹤源碼后發現,原來是初次運行時Ogre要計算一張1024*1024的光照貼圖(見OgreTeerain.CalcLightmap.for.for),此時用時較長,并沒有真正死掉,只要耐心等一段時間,就會順利打開這個Smaple,而且這張lightmap是生成一次,終生受用的。以后只要還是相同的地形,再次打開時直接載入,不必再等那么長的時間了。
另外,發現Ogre還沒有提供對1.7系統的學習指導wiki,我想只有靠自己去摸索了。最好的方法應該就是認真參觀各Sample大神了吧。
posted on 2010-06-08 10:12
風輕云淡 閱讀(1058)
評論(2) 編輯 收藏 引用 所屬分類:
OGRE