Página 1 de 1

Un include en varios proyectos

Publicado: Sab Oct 26, 2013 8:40 pm
por Claudio[1]
Estimados colegas.
Tengo una serie de #defines dentro de un archivo.ch ( productos.ch )
Funcionó todo perfecto y sin problemas en un proyecto. Lo llamare Proyecto 1
Cuando quiero incluir el mismo archivo de definiciones ( productos.ch )
en otro proyecto ( proyecto 2 ) me da el mensaje:
Compilando Productos_CLASE.prg...
C:tregia3MODULOSPRODUCTOSSourceProductos_CONTROL.prg(11 ) Error
F0029 Can't open #include file 'productos.ch'
Incorporé este archivo ( productos.ch ) al nuevo proyecto pero sigue el
mensaje de error.
El problema creo que pasa por que:
1) Como se ve en el mensaje el error lo da al compilar el prg:
Productos_CONTROL.prg(11)
2) Este prg esta ubicado en las carpetas del Proyecto 1 y lo inclui en
proyecto2 ( ojo, no lo copie ni cambie de carpeta )
3) El include lo agregue al proyecto 2 desde la carpeta del proyecto 1 (
tampoco lo copie ni cambie de carpeta )
Creo que es correcto no copiar los includes por todos lados y así­
mantener las definiciones en un solo lugar.
Este y otros fuentes se compilan en distintos proyectos xharbour y
harbour al mismo tiempo.
Espero se haya entendido el planteo.
La pregunta es: ¿ cuál es la manera correcta de compartir includes y prg
entre distintos proyectos si estos proyectos son compilados con xharbour
y otros con harbour?
Desde ya agradezco su tiempo.
Claudio.

Un include en varios proyectos

Publicado: Lun Nov 04, 2013 11:25 am
por jfgimenez
Hola,
> La pregunta es: ¿ cuál es la manera correcta de compartir includes y
> prg entre distintos proyectos
Lo mejor es tenerlos en un directorio común, y añadir el 'path'
correspondiente en cada uno de los proyectos que sea necesario. Ese
'path' hay que ponerlo en el campo 'include' del apartado 'directorios'
de las propiedades del proyecto.
> si estos proyectos son compilados con xharbour y otros con harbour?
En el caso de que haya alguna diferencia entre Harbour y xHarbour, se
pueden utilizar las directivas del preprocesador para distinguirlos. P.ej.:
#ifdef __XHARBOUR__
//...
#else
//...
#endif
O bien:
#ifndef __XHARBOUR__
//...
#else
//...
#endif
La constante __XHARBOUR__ esta definida cuando se compila con xHarbour
solamente, y es la que se debe usar para diferenciarlos. También existe
la constante __HARBOUR__, pero está presente en ambos compiladores, y no
sirve para distinguirlos.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info