Ho un progetto in C ++ che mi piacerebbe vedere l’output del preprocessore per vedere come apparirebbero #define e macro. Ho provato l’opzione /p
per triggersre il preprocesso su un’opzione di file per il compilatore (distriggers la compilazione completa e esegue solo il preprocessore) ma il mio progetto ora rifiuta di compilare e mostra un lungo elenco di errori che iniziano con:
“Imansible aprire il file include: ‘stdafx.h’: nessun file o directory”.
- Visual Studio 2013 mostra le proprietà del progetto vuoto quando VS2008 viene utilizzato come set di strumenti
- Visual Studio 2008 C ++ no x64 platform
- Come selezionare la versione delle DLL VC 2008 a cui deve essere collegata l'applicazione?
- Pacchetto di installazione di Python che riceve un errore con msvccompiler
- Rileva lo scorrimento in WebPage dall'estensione di IE
Il progetto si compila bene senza l’argomento /p
, ovviamente. Eventuali suggerimenti?
Se si esegue cl.exe
da solo, sarà necessario fornire tutti gli stessi parametri di IDE durante la creazione, altrimenti non sarà in grado di trovare tutti i percorsi di inclusione e macro del preprocessore. Tuttavia, c’è un altro modo per farlo. Nel file di progetto, seleziona il file .cpp che desideri e scegli Proprietà> C ++> Preprocessore> Genera file di preprocessore. Quindi compila il file .cpp.
Questo genererà il file preelaborato ( file.i
penso) nella directory di output. È un peccato che non ci sia un modo più semplice di selezionare semplicemente un file e di premere “pre-elaborazione”, ma questo potrebbe probabilmente essere fatto abbastanza facilmente con una macro di VisualStudio. Non dimenticare di reimpostare l’opzione in un secondo momento.
Tutte le altre opzioni (come /I
) sono uguali quando si compila con /p
? Sembra che non stia raccogliendo i tuoi file di intestazione. In alternativa, poiché sta tentando di pre-elaborare tutti gli include, non genera più l’intestazione precompilata stdafx.h
– potresti provare a includere solo tutte le intestazioni necessarie direttamente anziché quella.