J'essaie de "armer" compiler un fichier C, il inclut de nombreux fichiers d'en-tête récursivement..Je essayez de trouver la liste de ces fichiers d'en-tête...Est-il un moyen plus facile de trouver la liste de tout l'en-tête. fichiers qu'il comprend? p>
3 Réponses :
Vous pouvez utiliser le préprocesseur de GCC C avec une option de vidage de la liste des en-têtes incluses de manière récursive: qui vous montrera tous les en-têtes inclus. P> Vous allez Il est probablement nécessaire de lui donner les racines de tous les annuaires utilisés dans votre construction régulière. Exécutez-le de manière itérative, ajoutant plus de chemins jusqu'à ce que les erreurs s'arrêtent. P> La forme complète de cette commande dans cette utilisation est la suivante: p> cpp -M [-I include_directory *] path_to_c_file.c
Ceci s'applique à nouveau pour quelle boîte à outils?
Ah, merci! J'ai connecté gcc -m code> ou g ++ -m code> La commande cpp code> et cette option particulière est nouvelle pour moi. Est-ce que cela traite également les fichiers de récursivement inclus? Oubliez cela, je l'ai eu c'est le préprocesseur autonome ...
Si vous ne voulez pas voir les en-têtes système, remplacez l'option -M code> avec -mm code>.
Comment répertorier la sortie -mm ??
La plupart des compilateurs ont commuté pour les faire simplement prépréer le fichier. Quels moyens entre autres qu'ils développent tous #include code> dans un code réel. Et généralement, ils incluent un commentaire (un commentaire C approprié) sur la ligne d'origine incluent. Vous pouvez donc rechercher le code prétraité résultant pour tous ces commentaires pour collecter tous les en-têtes inclus. P>
Ce n'est généralement pas un commentaire, mais une directive #line code>.
Et aussi: le commutateur est généralement -e code> (ou / e code>).
Selon http://gcc.gnu.org /onlinedocs/gcc/profrocessor-option.html#preProcessor-Options -H et -M option sont utiles à cet effet. P>
Une autre option consiste à utiliser http://www.doxygen.nl/ et générer une documentation de votre Projet, après cela, vous pouvez vérifier pour voir les dépendances des fichiers :), il est préférable qu'il supporte de nombreuses langues: C, C ++, Objective-C, C #, PHP, Java, Python, IDL (Corba et Microsoft Saveurs), Fortran, VHDL, TCL. P>
Oui, regardez dans le fichier .c. Ou alternativement, vous pouvez jeter un coup d'œil sur l'en-tête maître à l'aide de l'option de compilateur.
Voici un indice pour GCC: Stackoverflow.com/Questtions/42308 / ...
Pour Visual Studio MSDN.MicRosoft.com/fr -us / bibliothèque / hdkef6tk% 28v = vs.0% 29.aspx