首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误: Visual Studio中的"No Target Architecture“

致命错误: Visual Studio中的"No Target Architecture“
EN

Stack Overflow用户
提问于 2011-01-31 04:09:59
回答 11查看 124.2K关注 0票数 125

当我尝试使用Visual Studio2010在Win32或x64模式下编译我的c++项目时,我得到以下错误:

>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture"

我的预处理器定义是WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)

是什么导致了这个错误?我如何修复它?

代码语言:javascript
复制
// winnt.h: lines 127-136, MSVS says this is an inactive preprocessor block
#if defined(_WIN64)

#if defined(_AMD64_)
#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif defined(_IA64_)
#define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( _s ) > TYPE_ALIGNMENT( DWORD ) ? \
                              TYPE_ALIGNMENT( _s ) : TYPE_ALIGNMENT( DWORD ))
#else
#error "No Target Architecture"
#endif

更新:我创建了一个新的msvs项目,并将代码复制到其中。我不再有error : "No Target Architecture",但是现在我有一堆涉及winnt.h和winbase.h的编译错误,并且没有涉及我的任何文件的编译错误。有没有可能这些文件已经损坏?我需要重新安装MSVS 2010吗?

更新2:所以我缩小了我的问题范围,发现是#include <WinDef.h>导致了我使用winnt.h的所有编译错误,但我仍然不知道如何修复它。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-01-31 06:09:43

使用#include <windows.h>而不是#include <windef.h>

windows.h维基百科页面:

有许多自动包含在windows.h中的子头文件。由于依赖关系,这些文件中的许多文件不能简单地包含在它们自己中(它们不是自包含的)。

windef.hwindows.h自动包含的文件之一。

票数 182
EN

Stack Overflow用户

发布于 2014-11-05 04:20:59

另一个原因可能是在包含windows.h之前包含一个依赖于windows.h的标头。

在我的例子中,我在windows.h之前包含了xinput.h,并得到了这个错误。交换订单解决了问题。

票数 32
EN

Stack Overflow用户

发布于 2019-07-18 20:51:25

通过将以下包含文件和定义放在第一位来解决它:

代码语言:javascript
复制
#define WIN32_LEAN_AND_MEAN      // Exclude rarely-used stuff from Windows headers

#include <windows.h>
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4845198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档