dimanche 20 février 2005
Comment afficher les valeurs prédéfinies avec GCC ?
Par Pause Choco, dimanche 20 février 2005 à 17:07 :: Linux
Lorsqu'on développe un programme C ou C++, avec GCC et un minimum portable (comme Powermanga ou TecnoballZ, qui se compilent tous les deux sur *BSD, Linux, Mac OS X et Windows), on aime bien utiliser les instructions du préprocesseur, comme par exemple #ifdef linux ou encore #ifdef i386.
Comment avoir la liste exhaustive des toutes ces valeurs ?
Après quelques recherches sur les forums, j'ai enfin trouvé qu'il faut utiliser les deux paramètres suivants de GCC :
- -E S’arrêter après l’étape du pré traitement ; ne pas lancer le compilateur proprement dit. La sortie est un code source pré traité, qui est envoyé vers la sortie standard.
- -dM Au lieu de la sortie normale, générer une liste de directives #define pour toutes les macros définies durant l’exécution du préprocesseur, macros prédéfinies comprises. Cela vous donne un moyen de découvrir ce qui est prédéfini dans votre version du préprocesseur. En supposant que vous n’avez pas de fichier foo.h, la commande
touch foo.h; cpp -dM foo.haffichera toutes les macros prédéfinies.
Exemple d'un programme C très complexe (vim defines.c) :
int main() {
return 1;
}
La commande suivante affichera toutes les valeurs prédéfinies :
gcc -E -dM defines.c
Les valeurs affichées dépendent bien entendu de votre code source et des fichiers inclus