lista de todos los archivos de encabezado incluidos en un archivo C

2 minutos de lectura

avatar de usuario
carta blanca

Estoy tratando de “armar” compilar un archivo C, incluye muchos archivos de encabezado recursivamente… estoy tratando de encontrar la lista de estos archivos de encabezado… ¿hay una manera más fácil de encontrar la lista de todos los archivos de encabezado que incluye? ?

  • Sí, mira en el archivo .C. O, alternativamente, puede echar un vistazo al encabezado maestro usando la opción del compilador -E.

    – Tiburón

    12 de abril de 2013 a las 16:10

  • Aquí hay una pista para GCC: stackoverflow.com/questions/42308/…

    – πάντα ῥεῖ

    12 de abril de 2013 a las 16:13

  • para estudio visual msdn.microsoft.com/en-us/library/hdkef6tk%28v=vs.90%29.aspx

    usuario995502

    12 de abril de 2013 a las 16:23

avatar de usuario
piokuc

Puede usar el preprocesador GCC C con su opción para volcar una lista de encabezados incluidos recursivamente:

cpp -M

Eso le mostrará todos los encabezados incluidos.

Probablemente necesitará darle las raíces de todos los directorios de inclusión utilizados en su compilación normal. Ejecútelo iterativamente, agregando más rutas de inclusión hasta que los errores se detengan.

La forma completa de este comando en este uso es:

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

  • ¿Esto se aplica para qué cadena de herramientas de nuevo?

    – πάντα ῥεῖ

    12 de abril de 2013 a las 16:14

  • ¡Gracias! he estado familiarizado con gcc -M o g++ -M la cpp El comando y esa opción en particular son nuevos para mí. ¿Rastrea también los archivos incluidos recursivamente? Olvídate de esto, lo tengo, es el preprocesador independiente…

    – πάντα ῥεῖ

    12 de abril de 2013 a las 16:18


  • Si no desea ver los encabezados del sistema, reemplace el -M opción con -MM.

    – ahcox

    5 de marzo de 2014 a las 15:06

  • ¿Cómo enumero la salida -MM?

    – Charco

    30 de enero de 2019 a las 9:10

según http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#Preprocessor-Options Las opciones -H y -M son útiles para este propósito.

Otra opción es usar http://www.doxygen.nl/ y genere documentación de su proyecto, después de eso puede verificarlo para ver las dependencias de archivos :), se prefiere porque admite muchos lenguajes: C, C ++, Objective-C, C #, PHP, Java, Python, IDL (Corba y Microsoft sabores), FORTRAN, VHDL, Tcl.

La mayoría de los compiladores tienen un interruptor para que solo preprocesen el archivo. Lo que significa entre otros que expanden todos #include‘s en un código real. Y por lo general incluyen un comentario (comentario C apropiado) en la línea de inclusión original. Entonces puede buscar el código preprocesado resultante para todos esos comentarios para recopilar todos los encabezados incluidos.

  • Por lo general, no es un comentario, sino un #line directiva.

    – James Kanze

    12/04/2013 a las 16:20

  • Y también: el interruptor suele ser -E (o /E).

    – James Kanze

    12 de abril de 2013 a las 16:21

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad