Autor Tema: diferencia ente incluir archivo desde código o agregarlo al proyecto desde IDE  (Leído 2154 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Hola amigos del foro.
Me surge una duda relacionada con la inclusión de archivos de cabecera o headers.

¿Que diferencia hay entre incluir los archivos desde el código con la directiva de preprocesado #include o incluirlo desde el IDE en el árbol del proyecto?.
 
Si agrego al árbol del proyecto en la carpeta headers files el archivo "xlcd_portd.h" sin agregar la directiva de procesado
#include "xlcd_portd.h" en el código el compilador no me reconoce las funciones que contiene el archivo xlcd_portd.h.
Pero a la inversa si. Es decir, si sólo dejo la directiva  #include "xlcd_portd.h" y saco de la carpeta headers files del árbol del proyecto el archivo "xlcd_portd.h" el programa compila correctamente.   
   No me queda clara que función cumple la la carpeta headers files del árbol del proyecto.


"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Encontré la respuesta a mi inquietud en la página 174 del manual de MPLAB X IDE. (DS52027B-page 174)

De acuerdo a lo que entendí no es necesario agregar al proyecto los archivos headers para que el compilador los compile. Sin embargo hay varias razones por las que puede ser útil agregar los archivos headers a la ventana del proyecto en la carpeta "Header Files".


• Los archivos headers podrán ser abiertos para ser editados directamente desde la ventana Project window haciendo doble clic en cada archivo sin tener que andar buscándolos dentro del código.

• La opción del menú “Save Project As” trabajará mejor.

• La herramienta para hacer “Package Project as .zip” trabajará mejor.


Podemos hacer que MPLAB X busque los archivos headers que son utilizados en nuestro proyecto haciendo click con el botón derecho sobre el proyecto y eligiendo la herramienta locate headers files.
El IDE buscará los archivos headers y una vez que los encuentre  nos consultará si queremos agregarlos al árbol del proyecto.

"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado Rseliman

  • PIC16
  • ***
  • Mensajes: 239
Encontré la respuesta a mi inquietud en la página 174 del manual de MPLAB X IDE. (DS52027B-page 174)

De acuerdo a lo que entendí no es necesario agregar al proyecto los archivos headers para que el compilador los compile. Sin embargo hay varias razones por las que puede ser útil agregar los archivos headers a la ventana del proyecto en la carpeta "Header Files".


• Los archivos headers podrán ser abiertos para ser editados directamente desde la ventana Project window haciendo doble clic en cada archivo sin tener que andar buscándolos dentro del código.

• La opción del menú “Save Project As” trabajará mejor.

• La herramienta para hacer “Package Project as .zip” trabajará mejor.


Podemos hacer que MPLAB X busque los archivos headers que son utilizados en nuestro proyecto haciendo click con el botón derecho sobre el proyecto y eligiendo la herramienta locate headers files.
El IDE buscará los archivos headers y una vez que los encuentre  nos consultará si queremos agregarlos al árbol del proyecto.





Gracias Jukinch ....yo me estaba haciendo la misma pregunta y me di cuenta a prueba y error .....por lo que no sirve para nada ..porque si vos haces click con el control apretado en el #include funcion.h tambien te lo habre ...y no hace falta hacerle doble click en el arbol ....la verdad no se pero me parece que deberia tener otros usos ...desp voy a buscar a ver si encuetro algo tambien

Gracias
Las Grandes Obras las sueñan los grandes locos , mientras los inutiles las critican !!

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
     Hola Rseliman.
     Buen dato lo de control + #include archivo.h
     Por lo que fui investigando también podría tener que ver con el orden en que serán linkeados los archivos *.o (object). Todavía no he tenido tiempo como para comprobarlo.
Me he puesto a estudiar el tema de los proyectos con archivos múltiples y como te habrás dado cuenta quiero entender hasta la última coma.
     un abrazo.
           Jukinch

"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado Rseliman

  • PIC16
  • ***
  • Mensajes: 239
     Hola Rseliman.
     Buen dato lo de control + #include archivo.h
     Por lo que fui investigando también podría tener que ver con el orden en que serán linkeados los archivos *.o (object). Todavía no he tenido tiempo como para comprobarlo.
Me he puesto a estudiar el tema de los proyectos con archivos múltiples y como te habrás dado cuenta quiero entender hasta la última coma.
     un abrazo.
           Jukinch



Fijate que con todo pasa lo mismo ....si lo haces sobre una funcion ...te lleva al header ...y si lo haces sobre un delay por ejemplo te lleva a donde nace el mismo , lo miso sobre las variables .....


Un Abrazo
Las Grandes Obras las sueñan los grandes locos , mientras los inutiles las critican !!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Hola! Justamente es eso, primero para visualizar el árbol del proyecto y dependencias, y para cuando se empaqueta que se agreguen. Después para el compilador es necesario indicarle los path y que el archivo fuente que lo utilice, que lo "llame".

Pensa que lo mismo que haces en el IDE lo podes hacer por linea de comando, donde le indicas los path y cada archivo "llama" lo que necesite ;)

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Suky. gracias por responder. Estudié a fondo el tema y encontré las diferencias entre incluir los .h y compilar los diferentes .c
Me fue de mucha ayuda compilar todo un ejemplo desde consola de comandos.
pronto subo una pequeña guía de estudio.
         Saludos.
              Jukinch
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes