C1189:#error:“没有目标架构”

时间:2013-10-10 09:57:32

标签: c++ winapi visual-studio-2012

编译时出现以下错误:

  

c:\ program files(x86)\ windows kits \ 8.0 \ include \ um \ winnt.h(146):致命错误C1189:#error:“No Target Architecture”

无论如何我不在我的项目中使用Windows Kit(或者我没有看到它包括在内)。我试图用32,64位改变我项目中的架构目标,并继承。没什么。有什么想法吗?

编辑:所有包含的列表。第一行来自我的项目。

1>  Remarque : inclusion du fichier :  d:\visual studio 2012\netsdk_poc\mfc_netsdk2\mfc_netsdk2\stdafx.h
1>  Remarque : inclusion du fichier :   d:\visual studio 2012\netsdk_poc\mfc_netsdk2\mfc_netsdk2\Libs\\netsdk.h
1>  Remarque : inclusion du fichier :    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\stddef.h
1>  Remarque : inclusion du fichier :     C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h
1>  Remarque : inclusion du fichier :      C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\sal.h
1>  Remarque : inclusion du fichier :       C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ConcurrencySal.h
1>  Remarque : inclusion du fichier :      C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\vadefs.h
1>  Remarque : inclusion du fichier :    C:\Program Files (x86)\Windows Kits\8.0\Include\shared\windef.h
1>  Remarque : inclusion du fichier :     C:\Program Files (x86)\Windows Kits\8.0\Include\shared\winapifamily.h
1>  Remarque : inclusion du fichier :     C:\Program Files (x86)\Windows Kits\8.0\Include\shared\minwindef.h
1>  Remarque : inclusion du fichier :      C:\Program Files (x86)\Windows Kits\8.0\Include\shared\specstrings.h
1>  Remarque : inclusion du fichier :       C:\Program Files (x86)\Windows Kits\8.0\Include\shared\specstrings_strict.h
1>  Remarque : inclusion du fichier :        C:\Program Files (x86)\Windows Kits\8.0\Include\shared\specstrings_undef.h
1>  Remarque : inclusion du fichier :       C:\Program Files (x86)\Windows Kits\8.0\Include\shared\driverspecs.h
1>  Remarque : inclusion du fichier :        c:\program files (x86)\windows kits\8.0\include\shared\sdv_driverspecs.h
1>  Remarque : inclusion du fichier :      C:\Program Files (x86)\Windows Kits\8.0\Include\um\winnt.h
1>  Remarque : inclusion du fichier :       C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ctype.h
1>  Remarque : inclusion du fichier :        C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h
1>  Remarque : inclusion du fichier :       C:\Program Files (x86)\Windows Kits\8.0\Include\shared\kernelspecs.h

1 个答案:

答案 0 :(得分:4)

错误行说

#if defined(_AMD64_) || defined(_X86_)
#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif defined(_IA64_) || defined(_ARM_)
#define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( _s ) > TYPE_ALIGNMENT( DWORD ) ? \
                              TYPE_ALIGNMENT( _s ) : TYPE_ALIGNMENT( DWORD ))
#elif !defined(RC_INVOKED)
#error "No Target Architecture"
#endif

你有#included标题,可能通过包含另一个标题间接。 您可以通过在Properties | C/C++ | Advanced项目菜单中将“显示包含”设置为“是”来告诉VS2012列出它使用的所有包含。如果您不需要,请尝试不要在winnt.h中拖动标题。

winnt.h会导致麻烦,例如见here

修改
因此,预编译头包括windef.h,其中包括违规头。尝试从预编译的标题中删除该行。