¿Dónde se encuentran los archivos de encabezado para GCC?

10

Quiero agregar manualmente algunos archivos de encabezado como math.hy graphic.hpara gccpero no sé dónde colocarlos.

Chirag Soni
fuente

Respuestas:

13

Primero eche un vistazo a /usr/includeo /usr/local/include.

Si no encuentra nada allí, intente:

`gcc -print-prog-name=cc1plus` -v

Este comando le pregunta a gcc qué preprocesador de C ++ está usando y luego le pregunta a ese preprocesador dónde busca incluir.

Obtendrá una respuesta confiable para su configuración específica.

Del mismo modo, para el preprocesador C:

`gcc -print-prog-name=cc1` -v
Sachin Kamath
fuente
6

Si solo desea saber dónde se ubica el archivo, simplemente use el comando de localización :

locate -b '\math.h'
locate -b '\graphics.h'

Quizás tenga más para actualizar su base de datos antes:

sudo updatedb

Así es como estoy buscando la ubicación de mi encabezado. Es mucho más rápido que usar el comando find .

abu_bua
fuente
math.hYa debería estar presente. Ejemplo:/usr/include/c++/7.3.0/math.h
Knud Larsen el
Normalmente, simplemente incluye la biblioteca
abu_bua
¿Cómo actúa la barra diagonal inversa para evitar la coincidencia de archivos con caracteres anteriores en su nombre base? La cadena \math.hdebería evaluar math.h, pero veo que \math.hevita que coincidan los archivos como tgmath.hy quadmath.h.
user001
1
FROM 'man localizar': para buscar un archivo llamado exactamente NOMBRE (no * NOMBRE *), use localizar -b '\ NOMBRE' Debido a que \ es un carácter global, esto deshabilita el reemplazo implícito de NOMBRE por * NOMBRE *.
abu_bua
Gracias. Lo había verificado man locate, pero supongo que tengo una versión diferente de la locate(1)página de manual (que no tiene una instancia de \ ).
user001