標籤:ogre 先行編譯 預先處理
當你建立一個OGRE項目時是否發現那漫長的編譯等待時間幾乎讓你崩潰?
當你修改代碼不斷進行調試時是否因為那漫長的編譯等待而讓你煩惱?
如果是,那麼請繼續往下看,您將受益匪淺。
---------------------------------------------------------------
------------------------------------------------
OGRE是個大傢伙,它內建OIS, Overlay等其他系統,因此,當你將其作為你
項目裡的圖形引擎時,實際上你每次都在編譯著這個大傢伙,試問這樣的編譯
速度又怎麼會快呢?
因此,我們我們需要對OGRE中需要用到的標頭檔集中起來,對它進行先行編譯和
預先處理,這樣,當我們修改項目時,實際上這些處理好的大傢伙就不用再進行編譯
了,因此大大的提高了我們的編譯速度,跳出了漫長的編譯等待。
下面我給出一些具體做法的樣本,編譯工具採用的是Visual Studio 2013.
1.首先,我們分別建立一個stdafx.h和stdafx.cpp檔案,然後把需要用到的庫檔案包含起來,
做法如下:
//stdafx.h
#pragma once#include <Ogre.h>#include <OIS.h>#include <SdkTrays.h>#include <SdkCameraMan.h>#include <CEGUI/CEGUI.h>#include <CEGUI/RendererModules/Ogre/Renderer.h>
//stdafx.cpp
#include"stdafx.h"
2.對那些需要用到這些庫檔案的cpp檔案中在開頭添加。
#include"stdafx.h"
3.然後點擊 項目-》屬性-》配置屬性-》C/C++-》先行編譯頭,
在“先行編譯頭”中選擇“建立(/Yc)",在"先行編譯標頭檔“填入"stdafx.h",
:
4.完成項目後,按下F5對項目進行第一次編譯,此時會產生先行編譯處理的stdafx.obj目標檔案(第一次編譯速度仍很慢),
產生之後,當你再次修改代碼進行重新編譯時間,不會重建stdafx.obj目標檔案,之後對其進行連結,然後執行,
因此大大提高了編譯的處理速度。