雖然說Ogre團隊很努力地讓Ogre成為一個跨平台與多編譯器的3D引擎
不過在Windows平台上
使用GNU GCC(MinGW)來開發還是抵不過Visual Studio的強勢佔有率與便利性
還有顯示用的DirectX也是微軟自家開發(MinGW不能編譯DX10的顯示套件)
再加上Visual Studio推出免錢版Express之下
狀態就更慘
同時,Ogre團隊修改給MinGW使用的版本
實在已經過於老舊,根本不能繼續在1.6版繼續執行
SDK更新到1.6.1版時就已經在註解說明,請直接下載最新的MinGW來使用
不需要管之前MinGW ToolBox
回到正題,那既然舊版本的MinGW已經接近快要淘汰的階段
那全部都使用最新的版本,包含GCC 4.4版如何呢?
畢竟上述SDK下載的註解也有說要用「最新版」
就這樣嘗試下去的結果....
主要卡了2個地方,FreeType與ODE
兩者都在最後連結時會判定無法執行
所以需要以GCC4重新編譯過
另一個就是OIS的部分,雖然編譯(Release)沒問題
可是執行時會死在搖桿的初始化(使用預設的ExampleFrameLinstner時)
沒辦法,除了在範例中把JoyStick的初始化取消外
就是重新編譯OIS
首先要做的就是下載最新的GCC 4.4.0
主要下載的有
gcc-c++-4.4.0-mingw32-bin.tar.gz
gcc-core-4.4.0-mingw32-bin.tar.gz
gcc-objc-4.4.0-mingw32-bin.tar.gz
gmp-4.2.4-mingw32-dll.tar.gz
mpfr-2.4.1-mingw32-dll.tar.gz
pthreads-w32-2.8.0-mingw32-dll.tar.gz(這個似乎不太必要)
其它的就是
mingwrt-3.15.2-mingw32-dev.tar.gz
w32api-3.13-mingw32-dev.tar.gz
binutils-2.19.1-mingw32-bin.tar.gz
gdb-6.7.50.20071127-mingw.tar.tar
再全部解壓縮到指定的資料夾下即可
不過_mingw.h請自行在檔尾加上
#define __MINGW32_TOOLBOX_UNICODE__
這樣才有辦法使用UTFString這個類別(顯示中文用)
不然就只好一個專案一個專案檔加上這個OGRE_UNICODE_SUPPORT的參數
這樣才能使用中文與QuickGUI
再來上到FreeType、ODE與OIS的官網下載原始碼
注意!!!前兩個都不是最新版
FreeType的版本是2.3.5
ODE的話請下載0.9版(以上的版本也可以使用,但會發生執行錯誤)
OIS的話請放心下載最新版1.2.0沒問題
接著FreeType的話請利用Code::Blocks把Visual C的設定匯入
(直接在命令列下mingw32-make似乎沒辦法產生Debug版的Library)
而ODE的話,請使用builds資料夾底下premake的執行檔,輸入下列這串
premake --file=ode.lua --target=cb-gcc
將workspace與cpb檔產生出來後,再使用CB來編譯
OIS的話本身就有CB的相關檔案
比較麻煩的大概在於需要DirectInput的標頭檔dinput.h
這個就請自行下載微軟最新的DirectX SDK吧
(所以還是VS Express方便啊)
上述的函式庫準備完成後
那當然就是放入Depedenceies的資料夾中
OIS的DLL請放入Samples裡
建立整個Ogre,OK我們有了最新的MinGW了
另外,補充一點,這次使用GCC4所編譯出來的Ogre還需要搭配
libgcc_s_dw2-1.dll這個動態函式庫才可以運作
請從mingw底下的bin資料夾中複製出來到Ogre的執行檔旁
編譯完成Ogre後,我再次嘗試了一些額外的東西
像是Addon上的Hydrax、Caelum與Showcase上的Galaxy Engine
除了Hydrax的水面表現有相當的問題外,其它的部分都是OK的
因為Linux版的GCC現在也都是4.x以上的版本
我想接下來Windows版也終於要跟上了
沒有留言:
張貼留言