【UDK2018】環境配置
最近因為做實驗需要,所以要配一個UDK2018的老版本的EDK2的環境,用虛擬機配了一天。出現了一些問題,記錄如下:
首先,目前(2025年)EDK2已經不按照UDK2xxx的模式來release,所以去EDK2的github上,必須切換分支或者tags來找到UDK2018。如果網速慢,可以用國內的gitee鏡像倉庫。
按照下面的指示一步步去做就行:UDK2018-How-to-Build,注意安裝Python2.7.14版本,低了會導致Python27/下沒有Scripts這個文件夾

我主要出現的問題如下,在第4步,執行edksetup.bat Rebuild的命令的時候,最后失敗,提示
makefile(23) : fatal error U1050: PYTHON_FREEZER_PATH does not exist! Stop.
但是我明明設置了這個環境變量,后來搜索發現,需要安裝對應的一個cx_freeze的python包,版本號4.2.3。
本想pip install -v cx_freeze==4.2.3 解決,可是這個包太老了,十多年前了,只能去自己找資源。
后來找到了,安裝一下,注意要按照默認安裝到python2.7的目錄下,接下來就可以順利完成edksetup.bat Rebuild了。
緊接著執行build命令,報錯:
fatal error LNK1101: MSPDB140.DLL 的版本不正確;
查了一下是微軟的Visual Studio的原因,為了匹配當時的環境,我用的是VS2015 Community的安裝包安裝的。

搞了很久,去查看Conf/tools_def.txt,原來是需要Professional版本的。
真無語。。。。
安裝好了Professional版本的,再次執行一下,還是報錯:
fatal error LNK1101: MSPDB140.DLL 的版本不正確;
人暈掉了,網上找的也感覺不對,修改了target.txt里目標為IA32,并且使用VS提供的x86命令行工具再次build:
其實不用VS提供的命令行工具也可以,只是每次執行edksetup.bat前需要執行這個:
call C:\ProgramFiles\VisualStudio2015\VC\vcvarsall.bat x86
當然也可以把這句話寫到你的edksetup.bat最開頭@echo off后面跟著
這下終于沒MSPDB140.DLL那個錯誤了,但是還有其他錯誤:
'c:\Program' 不是內部或外部命令,也不是可運行的程序
或批處理文件。
Building ... c:\users\12715\documents\edk2-vudk2018\vudk2018\MdeModulePkg\Universal\Network\ArpDxe\ArpDxe.inf [IA32]
NMAKE : fatal error U1077: “"c:\Program Files\Windows Kits\8.1\bin\x86\\rc.exe”: 返回代碼“0x1”
Stop.
??
經過一番斗爭,我經過如下處理;
首先,在C:\根目錄下新建一個C:\WindowsKits文件,將c:\Program Files\Windows Kits\目錄下的所有文件都復制到C:\WindowsKits\下。
其次,管理員方式打開cmd,執行:
mklink /J "c:\Program Files\Windows Kits" C:\WindowsKits
建立一個硬鏈接,這一步驟是不影響其他軟件的使用。
然后,在環境變量中新增一個,這里用實際目錄:

之后,修改下圖的地方:

最后,刪除\Build\目錄下之前編譯出來的文件,重啟電腦,編譯即可成功!

浙公網安備 33010602011771號