【UEFI实战】PCD版本问题导致的EDK编译异常

报错

编译报错信息如下:

出现该错误的原因是编译时使用的编译工具不对。这里指的编译工具是使用了BaseTools\Bin\Win32下的编译工具,对应的PCD工具由于版本比较旧,跟代码中的不匹配,所以就会报这个错误,对应的报错实际上是代码产生的,位于MdeModulePkg\Universal\PCD\Pei\Service.h:

//
// Please make sure the PCD Serivce PEIM Version is consistent with
// the version of the generated PEIM PCD Database by build tool.
//
#define PCD_SERVICE_PEIM_VERSION      7

//
// PCD_PEI_SERVICE_DRIVER_VERSION is defined in Autogen.h.
//
#if (PCD_SERVICE_PEIM_VERSION != PCD_PEI_SERVICE_DRIVER_VERSION)
  #error "Please make sure the version of PCD PEIM Service and the generated PCD PEI Database match."
#endif

解决措施

产生问题的原因是使用了较老的编译工具,而且该工具是Win32的版本,实际上我们完全可以不使用这个版本。因为这个版本并不是源代码自带的,而是需要额外下载的,这就可能导致兼容性的问题。所以为了解决上述的问题,最好的办法就是不用这个工具。但是为了编译,还是需要使用到build这样的工具,所以这里就使用Python的版本。这需要先安装Python(这里安装了Python2.7,这其实不是一个好的选择,因为Python2的版本已经过期了),然后设置环境变量PYTHON_HOME,之后编译的时候就使用Python脚本了,而不再需要Win32的版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值