Kiedy próbuję skompilować projekt C ++ przy użyciu programu Visual Studio 2010 w trybie Win32 lub x64, pojawia się następujący błąd:
>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture"
Moje definicje preprocesora mówią WIN32; _DEBUG; _CONSOLE;% (PreprocessorDefinitions)
Co powoduje ten błąd i jak go naprawić?
// 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
Aktualizacja: utworzyłem nowy projekt msvs i skopiowałem do niego mój kod. Już nie mam error : "No Target Architecture"
, ale teraz mam kilka błędów kompilacji związanych z winnt.h i winbase.h oraz żadnych błędów kompilacji dotyczących żadnego z moich plików. Czy to możliwe, że te pliki są uszkodzone? Czy muszę ponownie zainstalować MSVS 2010?
Aktualizacja 2: Więc zawęziłem mój problem i stwierdziłem, że jest #include <WinDef.h>
to przyczyną wszystkich moich błędów kompilacji w winnt.h, ale nadal nie wiem, jak to naprawić.