¿Cuáles son los directorios de inclusión predeterminados de GCC?

Cuando compilo un archivo fuente muy simple con gcc, no tengo que especificar la ruta a archivos de inclusión estándar como stdio o stdlib.

¿Cómo sabe GCC cómo encontrar estos archivos?

¿Tiene la ruta /usr/include cableada dentro, o obtendrá las rutas de otros componentes del sistema operativo?

Para averiguar las rutas predeterminadas utilizadas por gcc / g ++, así como sus prioridades, examine el resultado de los siguientes comandos:

  1. Para C:

     gcc -xc -E -v - 
  2. Para C ++:

     gcc -xc++ -E -v - 

El crédito es para el equipo de Qt Creator.

Hay un comando con un resultado más corto, que permite cortar automáticamente los pathes de las líneas, comenzando con un solo espacio:

 $ echo | gcc -Wp,-v -x c++ - -fsyntax-only ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include-fixed" ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../x86_64-redhat-linux/include" #include "..." search starts here: #include < ...> search starts here: /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2 /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2/x86_64-redhat-linux /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2/backward /usr/lib/gcc/x86_64-redhat-linux/4.8.2/include /usr/local/include /usr/include End of search list. 

El crédito va a la página frontal de libc ++.

Aquí hay un artículo que describe las rutas de búsqueda de gcc: http://www.network-theory.co.uk/docs/gccintro/gccintro_21.html

Además, puede especificar rutas de búsqueda adicionales con el -I . Puede hacer esto desde la línea de comando o en su archivo MAKE.