una que programacion principales otro lenguaje incluir hacer crear como cabeceras cabecera archivos archivo c++ c gcc include g++

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é