從Gitbub上下載了edk2-edk2-stable202011, 照理說應該是很穩定的, 結果卻錯誤百出, 乾脆把編譯流程全部寫下來, 怕自己忘記
首先要下載VS2019和VS2017, 需要兩個編譯器的原因是EmulatorPkg要用VS2019編譯但是BaseTools要用VS2017編譯, VS2019我選的如下圖:
而VS2017我是選"個別元件"裡的"VC++ 2017 version 15.7 v14.14 toolset"如下圖:
別以為VC2017這樣就結束了唷, 請看下圖
如果不安裝"Windows 10 SDK (任意版本)"的話在build code時會出現找不到stdio.h或stdlib.h這樣離譜的錯誤, 而不安裝"桌上型電腦版的 VC++ 2015 v1400 (v140) 工具組"會出現找不到assert.h的錯誤, 但是我安裝"桌上型電腦版的 VC++ 2015 v1400 (v140) 工具組"裝了3GB, 可是D 公司的AgS code把VS2015 build code需要的bin檔拆分出來可能才200MB, 這證明台灣除了語言劣勢外, 受限於軟韌體工程師往往需要花很多時間與硬體工程師合作, 導致軟韌體從業人員缺乏磨練自己的機會, 所以拆分編譯環境和設路徑對台灣軟韌體從業人員才會如此困擾, 但須聲明的是這次換工作坐主管旁邊, 深深體會代工廠基層主管釐清軟韌硬體問題有多麼辛苦, 我想即使台灣軟韌體人員缺乏磨練自己的機會, 但工作量和其勞累度比起爽歪歪老美絕對有過之而無不及, 另外我經過多益考試(沒有很認真唸)的歷練並且在公司交通車也積極唸英文, 如今語言略有進步可以跟越南工程師簡單溝通, 我雖然無意升遷但仍想一展所長盡忠報國, 也許往後有飛海外的機會不得而知
閒話說完, 首先把stable202011解壓縮並放置到Mywork\edk2裡面, 先把edksetup.bat加上如下command
看一下內容, 就知道要上網下載Python37, nasm, LLVM並放在適當的位置
於是我們用VS2017命令提示字元在BaseTools這個資料夾裡輸入toolsetup.bat rebuild, 但卻會發生如下的錯誤:
解決的辦法是我們不要編譯BrotliCompress, 於是修改Makefile如下
再繼續編譯, 大功告成
沒有留言:
張貼留言