c++ - que - incluir un archivo c en otro
¿Cómo saber de dónde se incluye un archivo de encabezado? (4)
¿Cómo puedo saber dónde g ++ pudo encontrar un archivo de inclusión? Básicamente si yo
#include <foo.h>
g ++ escaneará la ruta de búsqueda, utilizando cualquier opción de inclusión para agregar o modificar la ruta. Pero, al final de los días, ¿hay alguna forma en que pueda decir la ruta absoluta de foo.h que g ++ eligió compilar? Especialmente relevante si hay más de un foo.h en la miríada de rutas de búsqueda.
A falta de una forma de lograr eso ... ¿hay alguna manera de que g ++ me diga cuál es su ruta de búsqueda final después de incluir los valores predeterminados y todas las opciones de inclusión?
Esto dará dependencias make que enumeran rutas absolutas de archivos include:
gcc -M showtime.c
Si no desea que el sistema incluya (es decir, #include <something.h>
), utilice:
gcc -MM showtime.c
Si usa -MM
o una de las opciones relacionadas ( -M
, etc.), obtiene solo la lista de encabezados que se incluyen sin tener toda la otra salida del preprocesador (que parece obtener con la solución g++ -E -dI
)
Uso seguro
g++ -E -dI ... (whatever the original command arguments were)
g++ -H ...
también imprimirá la ruta completa de los archivos incluidos en un formato que muestre qué encabezado incluye qué