安装EDKII环境遇到的错误解决办法汇总

       在刚开始学UEFI时遇到的第一个打击人的困难就是EDKII环境的安装,按照教程来总会遇到让人看不懂的错误,今天把之前遇到的错误及解决办法总结出来。

       ①在安装环境时新建的文件夹不要用中文名,以防万一。

       ②关于出现C:\NASMnasm不是可执行文件的问题:
       这个问题困扰了我好久,环境变量明明设置的没有错,但是还是会出现这个错误,仔细看错误的内容,我的nasm.exe的路径是C:\NASM\nasm.exe,环境变量中也配置的是C:\NASM\,但是系统编译时总是把“C:\NASM\”中最后一个“\”忽略,从而将“C:\NASM\nasm.exe”识别成“C:\NASMnasm”。在环境变量都配置好后我在tools.def做了一些修改:
       将ENV(NASM_PREFIX)nasm这一句改为ENV(NASM_PREFIX)\nasm
       即在nasm前加了一个“\”。系统在编译时是根据tools.def文件中工具的路径进行编译的,所以也可以修改tools.def中的内容解决build时遇到的问题。

       ③关于
d:\myworkspace\edk2\Nt32Pkg\WLS/Compare.h: error C2220: 警告被视为错误 - 没有生成“object”文件
d:\myworkspace\edk2\Nt32Pkg\WLS/Compare.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
的解决办法:
       这个问题大部分是编码的问题,解决方法是在VSCode中将编码格式设置成UTF-8 with BOM格式。

       ④关于
LibGdtoa.lib(ldtoa.obj) : error LNK2001: 无法解析的外部符号 __fpclassifyd
d:\myworkspace\edk2\Build\AppPkg\RELEASE_VS2017\X64\AppPkg\WLS\mainW\DEBUG\Main.dll : fatal error LNK1120: 1 个无法解析 的外部命令
的解决办法:
       在tools_def中注释掉*VS2017_DLINK2_FLAGS = /WHOLEARCHIVE这一行,即改成#VS2017*_DLINK2_FLAGS = /WHOLEARCHIVE

       ⑤在写UEFI_APPLICATION时必须包含UefiApplicationEntryPoint(在[LibraryClasses]中),不然会出现LINK : error LNK2001: 无法解析的外部符号 _ModuleEntryPoint

       ⑥inf中的ENTRY_POINT和.c中的入口函数名要一样,如果一样了还编译错误,需将inf中的ENTRY_POINT名复制并粘贴到.c中的入口函数名(有可能是编码不一致导致的错误,以inf中的编码为准)。

       以上是安装环境以及代码编译时遇到的错误,以后如果再遇到其他的问题会继续补充,欢迎各位一起探讨。

       注:以上的错误是在windows10下的EDKII安装遇到的错误,其他平台的环境安装问题解决可能不一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值