Comment puis-je voir un C/C++ source file après prétraitement dans Visual Studio?
Disons que j'ai un fichier source avec de nombreuses directives de préprocesseur. Est-il possible de voir à quoi il ressemble après le préprocesseur est fait avec elle?
- Il serait utile si vous avez fourni des informations supplémentaires, telles que le compilateur que vous utilisez.
- Je suis actuellement à l'aide de Visual Studio 2005 que mon IDE .
- Alors par défaut, vous êtes à l'aide de la cl.exe compilateur.
- Pourquoi était-gcc réponse acceptée quand il a dit qu'il était à l'aide de VS2005?
Vous devez vous connecter pour publier un commentaire.
cl.exe
, l'interface de ligne de commande Microsoft Visual C++, a trois options différentes pour reproduire la séquence d'un fichier (d'où l'incohérence dans les réponses précédentes sur Visual C++):/E
: prétraiter sur stdout (similaire à GCC de l'option-E)/P
: prétraiter de fichier/EP
: prétraiter à stdout sans directives #lineSi vous souhaitez effectuer un prétraitement à un fichier sans directives #line, combiner les
/P
et/EP
options./P
supprimer la génération de fichiers obj. Donc, si vous mettez/P
options, vous pouvez obtenir un lien d'un message d'erreur indiquant que certains fichiers obj ne peut pas être trouvé, car il n'est pas réellement généré à tous.La plupart des compilateurs ont une option de simplement exécuter le préprocesseur. par exemple, gcc fournit -E:
De sorte que vous pouvez simplement exécuter:
Si vous ne pouvez pas trouver une telle option, vous pouvez également trouver le préprocesseur C sur votre machine. Il est généralement appelé rpc et est probablement déjà dans votre chemin. L'appeler comme ceci:
Si il y a des titres que vous devez comprendre à partir d'autres répertoires , vous pouvez passer -I/chemin/vers/include/dir pour l'un de ces, tout comme vous le feriez avec un régulier de la compilation.
Pour Windows, je vais laisser à d'autres affiches de fournir des réponses que je ne suis pas expert là.
Cliquez-droit sur le fichier dans l'Explorateur de solutions, allez dans Propriétés. Sous Propriétés de Configuration->C/C++->Préprocesseur, "Générer Prétraitées Fichier" est ce que vous cherchez. Puis cliquez-droit sur le fichier dans l'Explorateur de solutions et sélectionnez "Compiler". La séquence fichier est créé dans le répertoire de sortie (par exemple, la Libération, Debug) avec une extension .j'ai (grâce à la Monture de son commentaire).
Release
,Debug
) avec une extension.i
.Vous généralement besoin de faire un peu de post-traitement sur la sortie du préprocesseur, sinon toutes les macros étendre à l'un des doublures, ce qui est difficile à lire et à déboguer. Pour du code C, quelque chose comme ce qui suit devrait suffire:
Pour le code C++, il est en fait beaucoup plus difficile. Pour GCC/g++, j'ai trouvé ce script Perl utile.
Je ne sais rien à propos de compilateur de Microsoft, mais sur GCC, vous pouvez utiliser ceci:
Si vous voulez voir les commentaires:
Plus d'options disponibles sur cette page.
Essayer
cl /EP
si vous utilisez Microsoft compilateur C++.Dans Visual Studio, vous pouvez compiler un fichier (ou un projet) avec /P.
Comme bk1e et Andreas M. répondu, l'option /P pour le compilateur va l'amener à prétraiter un fichier. Cependant, dans mon projet à l'aide de VS2005 et Générateur de Plate-forme (pour un intégré à processeur ARM), le projet n'a pas une option dans la boîte de dialogue (comme décrit par Jim B) pour activer cette option.
J'ai pu courir CL manuellement et ajouter /P, mais elle a échoué parce que je ne connais pas toutes les options de ligne de commande de manière invisible qui sont activés par le Générateur de Plate-forme au cours de la construction complète. J'ai donc besoin de savoir toutes ces options.
Ma solution était d'aller chercher dans les construire.fichier journal, et de trouver la ligne qui a exécuté
CL blah-blah-blah myfile.c
J'ai copié cette ligne dans le presse-papiers. Le "bla-bla-bla" partie contient les options de génération, et a été énorme.
De retour dans l'IDE, j'ai cliqué droit sur myfile.c, a choisi "Ouvrir la Fenêtre de construction", et puis dans cette fenêtre, j'ai collé la construction de la ligne de commande, et ajoute un "/P".
CL /P blah-blah-blah myfile.c
Fait. Le myfile.j'fichier a été produite, qui contenait le préprocesseur de sortie.
CPIP est une nouvelle préprocesseur C/C++ écrit en Python. Si vous souhaitez un visuel détaillé de la représentation d'une séquence de fichier, donnez un coup de feu.
Sur le système d'exploitation Windows, une simple ligne de la réponse à cette question est d'utiliser la commande ci-dessous à l'invite de commandes DOS pour voir la séquence du fichier:
Cela va générer un fichier appelé myprogram.je. De l'ouvrir et de regarder dehors pour votre élargi les préprocesseurs.