Quando provo a compilare il mio progetto C++ utilizzando Visual Studio 2010 in modalità Win32 o x64 ottengo il seguente errore:Fatal error: "No Obiettivo Architettura" in Visual Studio
>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture"
mie definizioni del preprocessore dire WIN32; _DEBUG; _CONSOLE;% (PreprocessorDefinitions)
Che cosa sta provocando questo errore e come lo risolvo?
// 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
Aggiornamento: ho creato un nuovo progetto msvs e copiato il mio codice su di esso. Non ho più error : "No Target Architecture"
, ma ora ho un sacco di errori di compilazione che coinvolgono winnt.h e winbase.h e nessun errore di compilazione che coinvolge nessuno dei miei file. È possibile che questi file siano corrotti? Devo reinstallare MSVS 2010?
Aggiornamento 2: Così ho ristretto il mio problema e ho scoperto che è #include <WinDef.h>
che causa tutti i miei errori di compilazione con winnt.h ma non so ancora come risolverlo.
Come si imposta l'architettura di destinazione per il mio progetto? – philipvr
Un progetto vanilla non fallisce in questo modo. Cosa sei cambiato da un progetto vanilla? Cosa c'è alla riga 135 di winnt.h? Hai persino guardato quella riga del file di intestazione. Il messaggio di errore ti sta aiutando. –
dovresti essere in grado di risolverlo da qui; probabilmente è necessario tornare indietro prima della riga 127 per ottenere il quadro completo. Sembrerebbe chiaro che Edwin aveva ragione. –