Can't include "nasm.inc" error

最近在使用 EDK201903 的时候遇到了一个奇怪的问题, 错误信息如下:

ScanMem32Wrapper.c
c:\buildbs\stable201903\Build\NT32X64\DEBUG_VS2015x86\X64\MdePkg\Library\BaseLib\BaseLib\OUTPUT\X64\LongJump.iii:22: fatal: unable to open include file `Nasm.inc'
NMAKE : fatal error U1077: 'C:\nasm\nasm.EXE' : return code '0x1'
Stop.

具体代码在 \MdePkg\Library\BaseLib\X64\LongJump.nasm 。 就是说在编译过程中编译器发现找不到 Nasm.inc 这个文件。

; Module Name:
;
;   LongJump.Asm
;
; Abstract:
;
;   Implementation of _LongJump() on x64.
;
;------------------------------------------------------------------------------

%include "Nasm.inc"

    DEFAULT REL
    SECTION .text

extern ASM_PFX(PcdGet32 (PcdControlFlowEnforcementPropertyMask))

在 \MdePkg\Include\X64 目录下有这个文件。

经过搜索,在 https://bugzilla.tianocore.org/show_bug.cgi?id=2719 有提到这个问题,但是我没看明白问题的原因。一个解决方法是将这个文件拷贝到 \MdePkg\Library\BaseLib\X64 下面,再次编译即可通过。

这个问题挺奇怪, EDK2 201903 我已经使用了很长时间,不知道为什么突然又出现这样的错误。

发表评论

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