error: conflicting types for ‘UefiMain’

error: conflicting types for ‘UefiMain’

EDK2 中添加自己的inf,编译出现如下问题,主要说.c 和.h 冲突了,怎么也想不明白

edk2/Demo/01_helloworld/main.c:7:1: error: conflicting types for ‘UefiMain’
 UefiMain (
 ^
In file included from <command-line>:0:0:
edk2/Build/Emulator/DEBUG_GCC5/X64/Demo/01_helloworld/main/DEBUG/AutoGen.h:67:1: note: previous declaration of ‘UefiMain’ was here
make: 对“tbuild”无需做任何事。
 UefiMain (
 ^
Building ... edk2/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf [X64]
make: *** [edk2/Build/Emulator/DEBUG_GCC5/X64/Demo/01_helloworld/main/OUTPUT/main.obj] Error 1
GNUmakefile:384: recipe for target 'edk2/Build/Emulator/DEBUG_GCC5/X64/Demo/01_helloworld/main/OUTPUT/main.obj' failed


build.py...
 : error 7000: Failed to execute command
	make tbuild [edk2/Build/Emulator/DEBUG_GCC5/X64/Demo/01_helloworld/main]


build.py...
 : error F002: Failed to build module
	edk2/Demo/01_helloworld/main.inf [X64, GCC5, DEBUG]

- Failed -
Build end time: 16:13:31, Oct.28 2020
Build total time: 00:00:11

解决,是由于接口前面少了EFIAPI这个宏,
如下:

/*main.c */
#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Library/UefiApplicationEntryPoint.h>

EFI_STATUS
EFIAPI
UefiMain (
          IN EFI_HANDLE        ImageHandle,
          IN EFI_SYSTEM_TABLE  *SystemTable
          )
{
   SystemTable -> ConOut-> OutputString(SystemTable -> ConOut, L"HelloWorld\n"); 
   return EFI_SUCCESS;
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值