Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: warrior_rockk on May 18, 2016, 02:42:35 PM

Title: Trabajar correctamente con librerías
Post by: warrior_rockk on May 18, 2016, 02:42:35 PM
Como se ha comentado en los posts que se refieren a la capacidad de compilar e incluir las librerías data-code (dcl), no está implementada la exportación de defines o constantes, con lo que, se debe incluir un archivo .h con ellos. Hasta aquí está claro. ¿Pero que pasa cuando la complejidad de la librería impide tener todas las constantes o defines en un mismo archivo de definición?
Supongamos una librería que se compone de varios .prgs y varios .h cada uno de ellos conteniendo su categoría de constantes y defines, por tema de claridad y ordenación. En ese caso, no sirve el uso de la dcl porque se pierde esa información.
Por otro lado, si intentamos trabajar con la librería con el código fuente y agregarla con include, tenemos el problema de que si la librería está en un directorio distinto al programa que la llama, fallan las llamadas a los includes que tenga los archivos de la librería porque, evidentemente, el path apunta al directorio del programa en cuestión.
¿Como resolver esta situación en este caso?


Saludetes,
Title: Re:Trabajar correctamente con librerías
Post by: SplinterGU on May 18, 2016, 10:28:48 PM
crea un include principal que incluya los includes hijos...

ejemplo

libblah.h

#include "defines1.h"
#include "defines2.h"

Title: Re:Trabajar correctamente con librerías
Post by: warrior_rockk on May 19, 2016, 06:17:33 AM
Pero el problema es ese, que si el include "padre" y sus hijos, están en un directorio distinto al programa que llama la librería, no se incluye correctamente porque el path apunta al programa que llama la librería. Y llamar a todos los includes desde el programa principal tampoco es elegante porque la idea es hacer include del archivo principal de la librería y que sea la librería la que se encargue de incluir lo que necesite...
Title: Re:Trabajar correctamente con librerías
Post by: SplinterGU on May 19, 2016, 11:51:28 AM
el include de la libreria no tiene por que ser el include de los sources, con la distribucion podes tener un include especial, por otro lado, no necesitas especificar los paths por linea de comando, lo podes hacer por codigo, asi...

#include "path1/include1.h"
#include "path2/include2.h"
...
Title: Re:Trabajar correctamente con librerías
Post by: warrior_rockk on May 19, 2016, 12:27:53 PM
Claro pero ese path1 y 2, quisiera que fuesen relativos al path de la librería y no absolutos, pero como el path absoluto es la del programa... No se si me explico...
Title: Re:Trabajar correctamente con librerías
Post by: SplinterGU on May 19, 2016, 12:50:22 PM
es relativo, no al path de la libreria, sino al path del parametro -i o del directorio donde estas compilando.
Title: Re:Trabajar correctamente con librerías
Post by: warrior_rockk on May 19, 2016, 01:52:15 PM
Esa era la clave!! El parámetro —i del compilador! Ahí si que puedo definir el directorio de includes de la librería. Muchas gracias y disculpa por no verlo en la documentación!
Title: Re:Trabajar correctamente con librerías
Post by: SplinterGU on May 19, 2016, 07:18:49 PM
no hay nada que disculpar, de nada!