¿Cómo agregar una ruta de inclusión predeterminada para GCC en Linux?


288

Me gustaría que gcc incluya archivos $HOME/includeademás de los directorios de inclusión habituales, pero no parece haber un análogo $LD_LIBRARY_PATH.

Sé que puedo agregar el directorio de inclusión en la línea de comandos al compilar (o en el archivo MAKE), pero realmente me gustaría un enfoque universal aquí, como en el caso de la biblioteca.


3
Aquí hay un enlace al manual de GCC 4.8.1 donde se documentan las variables de entorno C_INCLUDE_PATH y CPLUS_INCLUDE_PATH .
mloskot

Respuestas:


392

Intente configurar C_INCLUDE_PATH(para archivos de encabezado C) o CPLUS_INCLUDE_PATH(para archivos de encabezado C ++).

Como mencionó Ciro, CPATHestablecerá la ruta para C y C ++ (y cualquier otro lenguaje).

Más detalles en la documentación de GCC .


53

Crea un alias para gcc con tus favoritos.

alias mygcc='gcc -I /whatever/'

12
Creo que no debería haber espacio después-I
Iulius Curt

10
solo es costumbre omitir el espacio, tal como escribiría -l<libnam>para vincular Solo tenga en cuenta que crear un alias es una solución muy pobre, realmente crearía una lista de sus 'inclusiones favoritas' y las agregaría a su archivo MAKE.
h4unt3r

99
"La segunda alternativa con la biblioteca como argumento separado es solo para el cumplimiento de POSIX y no se recomienda". , de acuerdo con el manual de GCC.
Jori

No es Buena idea. Esto no es componible (¿qué pasa si desea otro directorio? ¿Qué pasa si quiere algún otro conmutador GCC?) Y puede confundir varios scripts o herramientas automatizadas que hacen suposiciones sobre gcc.
Einpoklum

8

Un archivo de especificaciones de gcc puede hacer el trabajo, sin embargo, todos los usuarios de la máquina se verán afectados.

Ver aquí


6

solo una nota: CPLUS_INCLUDE_PATHy C_INCLUDE_PATHno son el equivalente de LD_LIBRARY_PATH. LD_LIBRARY_PATHsirve el ld(el enlazador dinámico en tiempo de ejecución) mientras que el equivalente de los dos anteriores que sirve su compilador C / C ++ con la ubicación de las bibliotecas es LIBRARY_PATH.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.