寫在一邊,最好不要略過的話。
這篇blog是按照編譯–>出錯–>解決錯誤–>再編譯 的方式寫的。
我認為這種逐漸改錯的過程有助于學習和了解,是以這樣寫的。
最節約時間的方法,就是先全部看完,解決所有的錯誤,然後編譯,一次成功。
一、編譯生成Ogre 1.8.1源代碼
0、我的系統環境
作業系統:64位Windows7
編譯環境:Visual Studio 2013。
DirectX SDK: DirectX 2010 June
編譯ogre1.8.1源碼。
1、下載下傳軟體和源代碼
(1)cmake安裝檔案下載下傳:
http://www.cmake.org/download/
我下載下傳的是cmake-3.2.1-win32-x86.exe
(2)下載下傳ogre的Visual Studio Dependenciesogre 在如下連結:
http://sourceforge.net/projects/ogre/files/ogre-dependencies-vc%2B%2B/1.7/OgreDependencies_MSVC_20101231.zip/download
(3)下載下傳ogre源代碼在如下連結:
http://www.ogre3d.org/download/source
我下載下傳的是OGRE 1.8.1 Source For Windows。
下載下傳後檔案如下圖:

2、安裝cmake3.2.1
安裝cmake到電腦,步驟略。
3、解壓縮源代碼
- 解壓縮ogre_src_v1-8-1.exe和OgreDependencies_MSVC_20101231.zip檔案。
- 将OgreDependencies_MSVC_20101231檔案夾下的Dependencies檔案夾放到ogre_src_v1-8-1檔案夾下。
- ogre_src_v1-8-1檔案夾移動到适當的位置。這裡我将ogre_src_v1-8-1檔案放在D盤根目錄下。
4、編譯Dependencies
-
進入D:\ogre_src_v1-8-1\Dependencies\src檔案夾,打開sln檔案。
由于沒有vs2013的sln檔案。先打開vs2013,從這裡打開OgreDependencies.VS2010.sln檔案,會提示轉換對話框,确定即可。
- 選擇解決方案平台 x64,編譯Debug版本解決方案。
- 有編譯錯誤,錯誤提示如下: 分别在幾個錯誤提示的檔案中添加代碼如下:
Ogre 1.8.1源代碼編譯和錯誤修改一、編譯生成Ogre 1.8.1源代碼二、運作示例代碼,修改相關配置bug
- 1
- 編譯Debug版本解決方案通過,再編譯Release版本,通過。
- Dependencies編譯完成,關閉vs2013.
5、用cmake生成代碼
- 打開cmake_gui.exe。
- source code 中選擇檔案夾:D:\ogre_src_v1-8-1。
- 在 D:\ogre_src_v1-8-1檔案夾下建立目錄:Build。
- build of binaries中選擇檔案夾:D:\ogre_src_v1-8-1\Build
- 點選“Configure”按鈕,選擇對應的vs版本。我選擇的是vs2013 win64。
- “完成”後,結果如下圖。
Ogre 1.8.1源代碼編譯和錯誤修改一、編譯生成Ogre 1.8.1源代碼二、運作示例代碼,修改相關配置bug - 再次點選“Configure”按鈕,結果如下圖。
Ogre 1.8.1源代碼編譯和錯誤修改一、編譯生成Ogre 1.8.1源代碼二、運作示例代碼,修改相關配置bug - 點選“Generate”按鈕,結果如下圖。
Ogre 1.8.1源代碼編譯和錯誤修改一、編譯生成Ogre 1.8.1源代碼二、運作示例代碼,修改相關配置bug - cmake生成代碼完成。關閉cmake_gui.exe。
6、用vs編譯ogre源代碼
- 打開 D:\ogre_src_v1-8-1\Build\OGRE.sln檔案。
-
選擇解決方案平台x64,編譯生成 debug版本的ALL_BUILD項目。
這裡編譯需要等待10分鐘。
- 編譯成功。
-
再生成INSTALL項目。
如果這個時候有錯誤,很可能是因為vs2013啟動的時候不是用管理者身份。關閉vs,再“以管理者身份運作”Visual Studio 2013,打開OGRE.sln檔案,生成INSTALL項目,就可以成功。
-編譯生Release版本的ALL_BUILD項目和INSTALL項目。
到這裡你就已經成功編譯生成的Ogre引擎的的源碼!
辛苦~(≧▽≦)/~啦啦啦!先撒花,撒花!休息,休息!然後我們還用很多事情要忙!
二、運作示例代碼,修改相關配置bug
下面我們将運作Ogre自帶的示例檔案,最近新下載下傳的Ogre源代碼産生一個以前沒有的限制。下面要耐心的改bug了!
1、運作SampleBrowser項目
-
将SampleBrowser項目“設為啟動項目”,調試運作。
錯誤提示如下:
Ogre 1.8.1源代碼編譯和錯誤修改一、編譯生成Ogre 1.8.1源代碼二、運作示例代碼,修改相關配置bug - 将D:\ogre_src_v1-8-1\Dependencies\bin\Debug檔案夾下的OIS_d.dll檔案和 cg.dll檔案複制到D:\ogre_src_v1-8-1\Build\bin\debug檔案夾下。
-
再運作。
錯誤提示如下:
Ogre 1.8.1源代碼編譯和錯誤修改一、編譯生成Ogre 1.8.1源代碼二、運作示例代碼,修改相關配置bug -
右擊SampleBrowser項目,進入項目屬性頁面,
配置屬性–>調試–>工作路徑 修改為: $(TargetDir)
-
再運作。已經可以看見一個顯示黑色視窗的對話框運作了,然後提示錯誤。
錯誤提示如下:
Ogre 1.8.1源代碼編譯和錯誤修改一、編譯生成Ogre 1.8.1源代碼二、運作示例代碼,修改相關配置bug
這個錯誤是由于Ogre配置禁止了zip檔案的解析,是以在載入resources_d.cfg檔案中的資源的時候無法解析Zip格式的資源。
有一個傻方法可以解決,就是将D:\ogre_src_v1-8-1\Build\bin\debug\resources_d.cfg檔案中Zip資源都手動解壓縮,然後再添加到資源清單。
例如:Zip=D:/ogre_src_v1-8-1/Samples/Media/packs/SdkTrays.zip
首先将SdkTrays.zip解壓縮到D:/ogre_src_v1-8-1/Samples/Media/packs/SdkTrays檔案夾下。
然後,在resources_d.cfg檔案中将上面那行改寫成
FileSystem=D:/ogre_src_v1-8-1/Samples/Media/packs/SdkTrays
然後再修改其它Zip。看起來還很多,這應該也挺麻煩的。
那我們還可以采用第二種方法,讓Ogre引擎支援Zip檔案的解析。
其實Ogre引擎中已經有支援Zip檔案的代碼,幾年前我編譯的時候是配置好的,現在我們隻需要自己配置編譯,讓它支援Zip檔案的解析就可以一勞永逸了。
具體步驟如下:
-
在OgreMain項目中“添加現有項”
D:\ogre_src_v1-8-1\OgreMain\src檔案夾下的OgreZip.cpp檔案,
和D:\ogre_src_v1-8-1\OgreMain\include檔案夾下 OgreZip.h檔案。
- 将 OgreMain項目中D:\ogre_src_v1-8-1\Build\include\OgreBuildSettings.h檔案中44行代碼
- 1
改為:
- 1
-
OgreMain項目–>屬性–>連接配接器–>輸入–>附加依賴項 中添加一行如下:
..\..\Dependencies\lib\debug\zziplibd.lib
- 編譯生成OgreMain項目。成功。
- 編譯生成 ALL_BUILD項目,成功。
- 運作SampleBrowser項目,可以看到Ogre自帶的執行個體。
Release x64編譯(OgreMain和SampleBrowser)會報一些連結錯誤,把link中lib位址修改為dependencies/release下面的依賴庫即可。