天天看點

Ogre 1.8.1源代碼編譯和錯誤修改一、編譯生成Ogre 1.8.1源代碼二、運作示例代碼,修改相關配置bug

寫在一邊,最好不要略過的話。 

這篇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。

下載下傳後檔案如下圖: 

Ogre 1.8.1源代碼編譯和錯誤修改一、編譯生成Ogre 1.8.1源代碼二、運作示例代碼,修改相關配置bug

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自帶的執行個體。
Ogre 1.8.1源代碼編譯和錯誤修改一、編譯生成Ogre 1.8.1源代碼二、運作示例代碼,修改相關配置bug

Release x64編譯(OgreMain和SampleBrowser)會報一些連結錯誤,把link中lib位址修改為dependencies/release下面的依賴庫即可。