Tengo el siguiente stucture direcory:inclusión de archivos de encabezado - relativo al directorio actual o para incluir directorios?
src
+-- lib1
+-- lib1.h
+-- lib2
+-- lib2.h
Tanto lib1
y lib2
van a ser distribuidos (instalado). lib2
hace uso de lib1
, por lo que necesita un poco incluye:
#include "../lib1/lib1.h" // 1
#include "lib1/lib1.h" // 2
#include <lib1/lib1.h> // 3
(1) es el camino a seguir recto, pero es muy inflexible. (2) es la forma en que uso en este momento, pero el sistema de compilación necesita saber que se debe agregar src
a la ruta de inclusión. (3) parece el mejor para mí en el aspecto de distribución porque entonces se puede suponer que los encabezados residen en una ubicación estándar, pero no es demasiado obvio para mí cómo maneja eso un sistema de compilación (en este caso, lib1
necesita ser instalado antes de lib2
se puede compilar).
¿Cuál es la manera recomendada?
¿Qué quiere decir con "instalar" una lib? ¿Es esto una biblioteca estática o dinámica? Si es estático, simplemente cree una buena estructura de depósito y agregue estas carpetas a su ruta de inclusión. –
Esto es todo específico de implementación. ¡Algunos sistemas ni siquiera tienen directorios! –
@EdS., Quiero decir: los archivos de encabezado y libs se copian en algún lugar (ubicación estándar, '/ usr/local/{lib, include}') para que sea posible usarlos en otros proyectos. –