我在尝试编译时不断收到一堆错误,如下所示
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
后,错误消失了,所以这个问题可以安全地关闭,因为它已经解决了。