web-dev-qa-db-fra.com

Sortie du préprocesseur

Comment visualiser la sortie produite par le pré-processeurC, avant sa conversion en fichier objet?

Je veux voir ce que les définitions MACRO font sur mon code.

31
user191776
gcc -E file.c

ou

g++ -E file.cpp

fera cela pour vous. Le commutateur -E oblige le compilateur à s’arrêter après la phase de prétraitement, en crachant tout ce qu’il a actuellement sur la sortie standard.

Note: Vous devez sûrement avoir quelques directives #include. Les fichiers inclus sont également prétraités, de sorte que vous pouvez obtenir beaucoup de sortie.

Pour Visual C++, le commutateur est/E qui crache la sortie du préprocesseur à l'écran.

48
Faisal Feroz

Pour GCC,

gcc -E -dM file.c

ou

g++ -E -dM file.cpp

devrait faire le travail. -dM, comme GNU Manuel du préprocesseur le met , devrait générer une liste de directives ‘#define’ pour toutes les macros définies lors de l’exécution du préprocesseur, y compris les macros prédéfinies.

5

Vous pouvez également appeler directement le préprocesseur C. 

cpp infile outfile

Consultez man cpp pour plus d'informations.

5
DroidX86

Cela dépend du compilateur que vous utilisez.
Avec GCC, vous pouvez spécifier le drapeau -E sur la ligne de commande pour permettre au compilateur de produire la sortie pré-processeur.

3

Vous pouvez consulter mon script décrit ici:

http://mosermichael.github.io/cstuff/all/projects/2011/09/16/preprocessor.html

Il formate la sortie du préprocesseur en un document HTML lisible (espérons-le): les lignes qui sont différentes en raison du préprocesseur sont marquées dans le fichier.

0
MichaelMoser