EDK II可於此https://github.com/tianocore/edk2下載。
我的系統為Win7 X64,Visual Studio版本為2010,欲編譯的架構為IA32
假設EDK II的存放地點在C:\EDK2\,執行Visual Studio 命令提示字元 (2010)(依您所安裝的VS版本開啟)
目錄切換到C:\EDK2\,執行edksetup.bat佈署環境。
接下來開啟Conf\target.txt,進行編譯前的設置,有以下參數:
ACTIVE_PLATFORM = Nt32Pkg/Nt32Pkg.dsc
TARGET = DEBUG
TARGET_ARCH = IA32
TOOL_CHAIN_CONF = Conf/tools_def.txt
TOOL_CHAIN_TAG = MYTOOLS
MAX_CONCURRENT_THREAD_NUMBER = 1
MULTIPLE_THREAD = Disable
BUILD_RULE_CONF = Conf/build_rule.txt
我只修改MAX_CONCURRENT_THREAD_NUMBER與MULTIPLE_THREAD,若您的CPU為多核心,則可做多執行續的程式編譯,其餘參數可依照自己所需的平台與架構做修改。
另外由於我的系統為X64,VS 2010安裝的路徑為C:\Program Files (x86)\Microsoft Visual Studio 10.0,而Conf/tools_def.txt中並沒有定義VS 2010的變數,此時如要編譯程式將會有錯誤!
接下來開啟tools_def.txt這個文字檔,內有各項工具的定義,唯獨少了VS 2010,此時仿照VS 2008的方式為VS 2010定義一組新變數(或者直接修改VS 2008的變數),接下來搜尋到第二個MYTOOLS(約3083行),底下有各架構的定義,找到IA32 definitions,將他底下括號中的變數修改成剛為VS 2010所定義的變數即可。
其餘方法,自己的編譯器已有定義在內的話:
1. build -t VS2005 (直接指定)
2. 修改tools_def.txt中的MYTOOLS對應的變數。
3. 修改target.txt中的TOOL_CHAIN_TAG對應的變數。如:TOOL_CHAIN_TAG = VS2005
修改完成後,繼續回到Visual Studio 命令提示字元 (2010),在C:\EDK2\底下鍵入build執行,接下來就等待建置完成。
完成後,輸入cd Build\NT32\DEBUG_MYTOOLS\IA32後,資料夾底下有secmain.exe,這個就是Shell的模擬環境,長得滿像DOS的,基本操作方式也很相似,fsnt0:底下有一些簡單的Apps可執行,如HelloWorld、Timer...等。
沒有留言:
張貼留言