Step to UEFI (284)最小的UEFI Application编译环境

前面介绍过一个最小的 UEFI Application编译器【参考1】,美中不足的是它还要依赖于 EDK2 的环境。这次介绍如何从 EDK2 中抽取所需的最小文件,从而实现一个最简单的编译环境。换句话说,之前介绍的是一个最小的用于生成 UEFI Application的编译器,这次介绍的是编译器和编译所需的环境。

实现的方法很简单:研究上一次的编译命令

x86_64-win32-tcc -I MdePkg/Include hello.c  -Wl,-subsystem=efiapp -nostdlib -o labz1.efi -DMDE_CPU_EBC

可以看到,指定了MdePkg/Include作为Include 路径,因此,只要我们将这个路径下依赖的文件提取出来即可。

最终实验发现提取如下的文件和目录就够了:

运行命令,编译之(需要注意使用 cmd 窗口):

生成文件labz1.efi, 模拟器测试工作正常:

整个环境只有200KB 左右。有兴趣的朋友可以自行研究。

同样的我们可以直接在 Visual C++ X64窗口中使用下面的命令编译:

cl -I MdePkg/Include hello.c
link.exe /ENTRY:_start /SUBSYSTEM:EFI_APPLICATION /LIBPATH:MdePkg/Include /NODEFAULTLIB /nologo /OUT:YourApp.efi hello.obj

同样可以正常运行:

参考:

1. https://www.lab-z.com/stu279tcc/ 介绍一个最小的UEFI Application 编译器

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注