Domanda

Sto tentando di utilizzare l'opzione compilatore A /D su MSVC6 per definire una stringa, ma c'è qualcosa di strano nell'uso di doppie citazioni attorno ad essa. Per eseguire il debug di questo problema, sarebbe estremamente utile per me essere in grado di vedere quale valore il preprocessore sta effettivamente sostituendo nel mio codice in cui la macro viene ampliata. C'è un modo per farlo? Ho provato a creare un file di elenco con "assembly e fonte", ma la fonte contiene il nome macro originale e l'ASM è un incomprensibile incomprensione in quella riga. C'è un modo per ottenere il valore macro al momento della compilazione?

In caso contrario (o forse più utile), come posso specificare una stringa con l'opzione /d? Deve sostituire la mia fonte con doppie citazioni attorno ad essa, dal momento che la sto usando come letterale della stringa.

È stato utile?

Soluzione

Prova una delle seguenti opzioni a Cl.exe:

/E preprocess to stdout
/P preprocess to file

Se stai costruendo in Visual Studio, è possibile specificare le opzioni di riga di comando personalizzate in una delle finestre di dialogo della proprietà del progetto.

Altri suggerimenti

MSVC ha un flag compilatore che consente di vedere il file di origine preelaborato con tutte le macro ampliate, commenti rimossi, ecc. - L'intera unità di traduzione in termini di codice effettivo che si compilerà. L'output preelaborato dovrebbe darti l'intuizione che stai cercando riguardo alla tua macro espansione. Ulteriori informazioni qui.

C'è un'opzione per passare al compilatore (/P) e scriverà l'output preprocessore in my_cpp_file.i dove puoi guardarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top