编译 C++ 控制台应用程序时出错 [关闭]

问题描述 投票:0回答:0

我在尝试编译时不断收到一堆错误,如下所示

Severity    Code    Description Project File    Line    Suppression State
Error (active)  E0035   #error directive: "No Target Architecture"  ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h  173 
Error (active)  E0020   identifier "PCONTEXT" is undefined  ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\minwinbase.h 384 
Error (active)  E0020   identifier "PCONTEXT" is undefined  ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h  19329   
Error (active)  E0020   identifier "PSLIST_HEADER" is undefined ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h  19980   
Error (active)  E0020   identifier "SLIST_HEADER" is undefined  ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h  19988   
Error (active)  E0020   identifier "PSLIST_HEADER" is undefined ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h  19995   
Error (active)  E0020   identifier "PSLIST_HEADER" is undefined ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h  20002   
Error (active)  E0020   identifier "PSLIST_HEADER" is undefined ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h  20010   
Error (active)  E0020   identifier "PSLIST_HEADER" is undefined ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h  20020   
Error (active)  E0020   identifier "PSLIST_HEADER" is undefined ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h  20027   
Error   C1189   #error:  "No Target Architecture"   ConsoleApplication2 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h  173 

我不知道为什么会这样,在我上次尝试编译 C++ 控制台应用程序之前从未发生过,所以我不知道为什么现在会这样。 我试过包含 windows.h,它导致了更多类似的错误发生,所以我真的很困惑为什么会发生这种情况或该怎么办。

顺便说一句,我使用的是本地windows调试器编译,具体是点击Visual Studio顶部的绿色箭头按钮,我绝不是使用PowerShell编译。

我还在使用 Visual Studio 2022 和 Windows 11。

我也尝试查找解决方案,我希望程序能够编译而不会出现这些错误。

#include <iostream>
#include <sysinfoapi.h>

int main()
{
    PULONGLONG totalRAM = nullptr;
    if (totalRAM == NULL)
        totalRAM = 0;

    std::cout << "Total RAM Installed is: " + GetPhysicallyInstalledSystemMemory(totalRAM);
}

至于编译器输出:

Build started...
1>------ Build started: Project: ConsoleApplication2, Configuration: Debug x64 ------
1>ConsoleApplication2.cpp
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winnt.h(173,1): fatal error C1189: #error:  "No Target Architecture"
1>Done building project "ConsoleApplication2.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

另外,我的主动解决方案平台就是“x64”。

再次编辑:用

sysinfoapi.h
替换
Windows.h
后,错误消失了,所以这个问题可以安全地关闭,因为它已经解决了。

c++ windows compiler-errors console-application visual-studio-2022
© www.soinside.com 2019 - 2024. All rights reserved.