【UDK2018】环境配置

最近因为做实验需要,所以要配一个UDK2018的老版本的EDK2的环境,用虚拟机配了一天。出现了一些问题,记录如下:

首先,目前(2025年)EDK2已经不按照UDK2xxx的模式来release,所以去EDK2的github上,必须切换分支或者tags来找到UDK2018。如果网速慢,可以用国内的gitee镜像仓库。

按照下面的指示一步步去做就行:UDK2018-How-to-Build,注意安装Python2.7.14版本,低了会导致Python27/下没有Scripts这个文件夹

img

我主要出现的问题如下,在第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的安装包安装的。

img

搞了很久,去查看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 

建立一个硬链接,这一步骤是不影响其他软件的使用。

然后,在环境变量中新增一个,这里用实际目录:

img

之后,修改下图的地方:

img

最后,删除\Build\目录下之前编译出来的文件,重启电脑,编译即可成功!

posted @ 2025-08-08 16:04  Tyler77  阅读(47)  评论(0)    收藏  举报