La compilazione di un progetto (VS 2008) con l’argomento / p (pre-elaborazione in un file) non viene compilata

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”.

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.