liste de tous les fichiers d’en-tête inclus par un fichier C

J’essaie d ‘”armer” la compilation d’un fichier C, il comprend beaucoup de fichiers d’en-tête récursivement. ?

Vous pouvez utiliser le préprocesseur GCC C avec son option pour vider une liste d’en-têtes inclus de manière récursive:

cpp -M 

Cela vous montrera tous les en-têtes inclus.

Vous devrez probablement lui atsortingbuer les racines de tous les répertoires include utilisés dans votre construction habituelle. Exécutez-le de manière itérative, en ajoutant plusieurs chemins d’inclusion jusqu’à ce que les erreurs cessent.

La forme complète de cette commande dans cet usage est:

 cpp -M [-I include_directory *] path_to_c_file.c 

Conformément à http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#Preprocessor-Options -H et -M, les options sont utiles à cet effet.

Une autre option consiste à utiliser http://www.stack.nl/~dimisorting/doxygen/ et à générer la documentation de votre projet, après quoi vous pourrez le vérifier pour voir les dépendances de fichiers :), il est préférable car il prend en charge plusieurs langues: , C ++, Objective-C, C #, PHP, Java, Python, IDL (versions Corba et Microsoft), FORTRAN, VHDL, Tcl.

La plupart des compilateurs ont la possibilité de faire un prétraitement du fichier. Ce qui signifie entre autres qu’ils développent tous les #include dans un code réel. Et généralement, ils incluent un commentaire (le commentaire C approprié) sur la ligne d’inclusion originale. Vous pouvez alors rechercher dans le code prétraité résultant de tous ces commentaires afin de collecter tous les en-têtes inclus.