Question

J'essaie d'utiliser l'option de compilateur A / D sur MSVC6 pour définir une chaîne, mais il y a quelque chose de bizarre à utiliser des citations doubles autour de lui. Pour déboguer ce problème, il serait extrêmement utile pour moi de pouvoir voir quelle valeur le préprocesseur remplace réellement mon code où la macro est élargie. Y a-t-il un moyen de faire cela? J'ai essayé de créer un fichier de liste avec "assemblage et source", mais la source contient le nom de macro d'origine et l'ASM est un charabia incompréhensible sur cette ligne. Existe-t-il un moyen d'obtenir la macro-valeur au moment de la compilation?

Échec de cela (ou peut-être plus utile), comment puis-je spécifier une chaîne avec l'option / D? Il doit se remplacer dans ma source par des citations doubles autour, car je l'utilise comme littéral de cordes.

Était-ce utile?

La solution

Essayez l'une des options suivantes pour cl.exe:

/E preprocess to stdout
/P preprocess to file

Si vous construisez dans Visual Studio, vous pouvez spécifier des options de ligne de commande personnalisées dans l'une des boîtes de dialogue de la propriété du projet.

Autres conseils

MSVC a un indicateur de compilateur qui vous permet de voir le fichier source prétraité avec toutes les macros élargies, les commentaires supprimés, etc. - l'ensemble de l'unité de traduction en termes de code réel qui sera compilé. La sortie prétraitée devrait vous donner les informations que vous recherchez concernant votre expansion macro. Plus d'informations ici.

Il y a une option pour passer au compilateur (/P) et il rédigera la sortie du préprocesseur dans my_cpp_file.i où vous pouvez le regarder.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top