于喝水 2023-08-01 20:03 采纳率: 50%
浏览 95

UEFI环境设置报错:error 7000: Failed to execute command Vc\bin\nmake.exe /nologo tbuild

在运行EDK2的入口函数时,根据《UEFI编程实战》出现了如下报错,环境里面的文件也都存在,环境应该没有问题,当用简单的输出可以正常运行,但是使用复杂一点或者输出时间就会报错

这样的代码可以运行

#include <Uefi.h>
EFI_STATUS UefiMain(IN EFI_HANDLE Imagehandle, IN EFI_SYSTEM_TABLE *SystemTable) {

    SystemTable->ConOut->OutputString(SystemTable->ConOut, L"My First UEFI HelloWorld\n");
    return EFI_SUCCESS;
}

但是加一些时间或者使用全局变量就会报错 (很多我注释了,测试是否能够运行)

有没有那位小伙伴也遇见过类似的情况,求解答:

#include  <Uefi.h>
#include  <Library/UefiLib.h>
//#include  <Library/ShellCEntryLib.h>

// #include <Library/UefiBootServicesTableLib.h>  //gST,gBs
//#include <Library/UefiRuntimeServicesTableLib.h> //gRT
/***
  Print a welcoming message.

  Establishes the main structure of the application.

  @retval  0         The application exited normally.
  @retval  Other     An error occurred.
***/
INTN
EFIAPI
ShellAppMain (
  IN UINTN Argc,
  IN CHAR16 **Argv
  )
{
  //EFI_TIME curTime;
  Print(L"Hello,this is Entry of ShellAppMain!\n");

  //使用BootService和RuntimeService
  // gST->BootServices->Stall(2000);  //延时2//gBS->Stall(2000);
  // gST->RuntimeServices->GetTime(&curTime,NULL);
  //gRT->GetTime(&curTime,NULL);
  //Print(L"Current Time: %d-%d-%d %02d:%02d:%02d\n",curTime.Year,curTime.Month,curTime.Day,curTime.Hour,curTime.Minute,curTime.Second);

  //使用SystemTable
  //gST->ConOut->OutputString(gST->ConOut,L"Test SystemTable...\n\r");

  return(0);
}

img

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-01 23:58
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 以下回答由chatgpt基于相关博客总结生成:

      在运行EDK2的入口函数时出现error 7000: Failed to execute command Vc\bin\nmake.exe /nologo tbuild,这可能是因为编译工具链环境没有正确配置或者缺少必要的依赖。

      解决这个问题可以按照以下步骤进行操作:

      1. 检查编译工具链的环境配置是否正确。确保Vc\bin目录下的nmake.exe存在,并且确保这个目录已经添加到了系统的PATH环境变量中。你可以在命令行窗口中输入nmake /?来测试一下,看看是否能正确输出nmake的帮助信息。

      2. 检查是否安装了必要的依赖。EDK2需要依赖一些工具和库文件,比如Python、GCC、NASM等。请确保相关的软件已经正确安装,并且也已经将它们的可执行文件所在的路径添加到了系统的PATH环境变量中。

      3. 检查工程文件的配置是否正确。请确保你的工程文件中指定了正确的编译工具链和相关的依赖文件路径。有时候可能需要手动修改工程文件或者提供一些额外的配置文件,具体根据你的工程和EDK2的版本来决定。

      如果以上步骤都没有解决问题,可能是由于其他更深层次的原因导致的,比如EDK2本身的Bug或者环境配置的其他问题。建议你查看EDK2的官方文档、讨论区或者向EDK2的开发者社区寻求帮助,他们可能能够给出更准确的解决方案。

      如果你需要其他更详细的帮助,请提供更多的信息,比如你使用的EDK2的版本、操作系统的版本、编译工具链的版本等等。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月1日

悬赏问题

  • ¥15 如何使用python 实现对串口/dev/ttyUSB0进行上锁,使得该串口只能在一个python脚本中使用,其他脚本不能操作这个串口
  • ¥15 晶体塑性有限元——Damask求解
  • ¥15 写出这个有没有人能写一下今天中午就要
  • ¥30 设计一个图形用户界面来控制你机械臂的运动
  • ¥30 3d打印机无法识别到SD卡,如何解决?(相关搜索:格式化)
  • ¥15 RPG游戏架构设计和开发方法
  • ¥15 前端返回pdf时不显示内容
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图