Tengo un proyecto (una biblioteca) que se subdivide en unos pocos directorios con código en ellos. Me gustaría tener g ++ búsqueda de archivos de encabezado en el directorio raíz del proyecto, por lo que puedo evitar diferentes rutas de inclusión para los mismos archivos de encabezado en múltiples archivos de origen.¿Cómo hacer que g ++ busque archivos de encabezado en un directorio específico?
Principalmente, el directorio root/
tiene subdirectorios A/
, B/
y C/
, todos los cuales tienen .hpp
y .cpp
archivos dentro. Si algún archivo fuente en A desea incluir file.hpp
, que estaba en B, tendría que hacerlo así: #include "../B/file.hpp"
. Lo mismo para otro archivo fuente que estaba en C. Pero, si A tuviera subdirectorios con archivos que necesitaran file.hpp
, entonces sería inconsistente y causaría errores si decidiera mover archivos (porque la ruta de inclusión sería "../../B/file.hpp"
) .
Además, esto también debería funcionar desde otros proyectos, que residen fuera de root/
. Ya sé que hay una opción para copiar manualmente todos mis archivos de encabezado en un directorio de búsqueda predeterminado, pero me gustaría hacer esto de la manera que describí.
Edición: todos los programas que utilizan la biblioteca deben compilar solo con g++ prog.cpp lib.a -o prog
. Eso significa permanentemente estableciendo la ruta de inclusión para g ++!
Oye, he planteado la pregunta sin un detalle importante, por favor mira la edición, ¡gracias! – corazza
@Bane, eso cambia todo :-). Edité mi respuesta para incluir más opciones que se pueden usar. – Vikas
Eso parece ser lo que estoy buscando. ¿Cómo exactamente puedo editarlos? (Con una instrucción CLI, es decir, que debo agregar a la regla de instalación de mi archivo MAKE). – corazza