UEFI环境搭建时编译问题记录(一)

最近初学UEFI,在环境搭建时遇到很多坑,网上也找不到相同的问题,最后费劲解决了,记录一下。

环境软件安装不再赘述,网上很多例子,在build过程中出现了两个大的问题:

1,build过程中遇到C:\NASMnasm不是可执行命令的问题。

原因在于tools_def中,定义了nasm的路径,而文件中写的是*_*_*_NASM_PATH                = ENV(NASM_PREFIX)nasm,那么编译的时候展开路径就变成了C:\NASMnasm,所以要修改文件,修改成*_*_*_NASM_PATH                = ENV(NASM_PREFIX)\nasm.exe,展开就找到了nasm.exe,可进行编译。

2,定义工具链时选哪一个?

我安装的是VS2019,但按照网上例子,工具链写VS2019时找不到相应工具,原因在于执行完edksetup.bat后,工具链就会定义在tools_def中,那么选哪一个,首先搜一列表中,当前电脑安装的哪一个,就选(我的电脑安装的VS2019,但只能搜到VS2017,不知道啥原因),所以我就选工具链为VS2017,选其他的编译都会出错。

3,搞了好久,终于搞定了,记录一下

3.1,之前用的是PYTHON2.7以及VS2019,下载的EDK2不是最新版,缺了很多东西,所以导致即使编译通过,也没有winhost.exe文件。这就导致了EDK2的tools_def文件里没有VS2019,工具匹配不上,出现很多奇奇怪怪的问题,所以一怒之下就全部重来。

3.2,工具:PYTHON3.8,VS2019,EDK2到git上下载最新版。

3.3,编译过程不赘述,就讲遇到的问题

1,出现Library\GoogleTestLib\googletest\googletest\include is not found

解决:git clone https://gitee.com/LSLWIND/googletest,下载,然后拷贝到相应文件夹。

2,出现Library\CmockaLib\cmocka\include\cmockery is not found in packages path

解决:git clone https://gitee.com/ziyuyouxia/cmockery,下载,然后拷贝到相应文件夹。

3,出现aseLib\OUTPUT\X64\DisablePaging64.iii:35: error: symbol `InternalX86DisablePaging64.0' undefined以及LongJump.iii:44: error: parser: instruction expected

解决:NASAM版本低,将NASAM更新到2.15版本。

### 回答1: UEFI开发环境的搭建包括以下步骤: 1. 安装必要的软件和工具,包括:GNU工具链(如GCC)、EDK II(EFI开发工具包)、Python 2.7等。这些软件和工具可在官方网站上下载。 2. 配置环境变量。将刚刚下载的软件和工具的安装目录添加到操作系统的环境变量中,以便在任何位置都能够使用这些工具。 3. 编写UEFI应用程序。使用UEFI开发工具包和GNU工具链编写UEFI应用程序,包括C代码、汇编代码等。 4. 编译应用程序。使用UEFI开发工具包中的编译器将应用程序编译成可执行文件。 5. 调试和测试应用程序。使用UEFI开发工具包中的调试器和测试工具对应用程序进行调试和测试,以确保其在UEFI固件中正确运行。 需要注意的是,UEFI开发环境的搭建需要一定的编程基础和经验,因此对于初学者来说可能会比较困难。建议在学习之前先了解UEFI的基本原理和概念,以及相关的编程技术和工具。同,也可以参考官方文档和其他相关资源,以便更好地理解UEFI开发环境的搭建和应用程序的编写。 ### 回答2: UEFI(统一的可扩展固件接口Unified Extensible Firmware Interface)开发环境的搭建包括以下几个主要步骤: 1. 准备开发工具:首先,需要安装一个支持UEFI开发的编程环境,例如EDK II(开放式UEFI开发工具包)或TianoCore。这些工具包提供了完整的UEFI开发框架和示例代码。 2. 安装编译工具链:UEFI开发需要使用特定的编译工具链,包括GCC编译器和GNU binutils等。可以根据官方文档提供的要求,从合适的源中下载并安装所需的工具链。 3. 获取EDK II或TianoCore代码:从EDK II或TianoCore的官方存储库中获取源代码。这些存储库通常使用Git进行版本控制,因此在获取源代码之前,需要在本地系统中安装Git。 4. 配置开发环境:根据需要,可以在本地系统上设置UEFI开发环境来满足特定的需求。这包括配置编译选项,设置环境变量和路径以及安装所需的依赖项。 5. 构建和调试:通过使用编译工具链,编译源代码并生成UEFI固件映像。这些映像可以通过模拟器或真实的硬件来启动和调试。构建和调试过程中可能会发现一些错误和警告,需要进行适当的调整和修改。 6. 部署和测试:在完成调试和开发后,将生成的UEFI固件映像部署到目标系统上进行测试。可以使用适当的UEFI引导加载器来引导UEFI固件映像。 总之,UEFI开发环境的搭建涉及安装开发工具、获取源代码、配置环境、构建和调试、部署和测试等步骤。这些步骤需要一定的技术知识和经验,但通过正确的步骤和实践,可以搭建一个可靠和高效的UEFI开发环境。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值