Autor Tema: Librerías  (Leído 3266 veces)

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

Desconectado cartle

  • PIC10
  • *
  • Mensajes: 7
Librerías
« en: 03 de Enero de 2006, 13:00:00 »
Hola a todos,soy nuevo en este foro,  tengo una duda a ver si me podéis aclarar las ideas. ¿Qué diferencia hay entre una librería .inc y .lib? ¿Se pueden colocar todas las librerías en una sola carpeta o debe de estar en la carpeta del proyecto en la que se utiliza?

Saludos y gracias

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Librerías
« Respuesta #1 en: 03 de Enero de 2006, 13:17:00 »
Buenas!!!segun sea el lenguaje de programacion las librerias tienen unas terminaciones u otras, esto era antiguamente ya se ha estandarizado a tal punto que creo que todos los lenguajes de programacion reconocen como librerias los formatos .inc, .h ,etc.....
Respecto a ponerlas todas en la carpeta de proyecto no tiene por que!haber segun el compilador que uses y el lenguaje de programacion, este tendra una carpeta donde estaran todas las librerias que se pueden emplear en dicho compilador, tu simplemente en tu programa tendras que incluirlas como indica el compilador a usar, eso si, si dichas librerias no estan en la carpeta que genera automaticamente el compilador para almacenar dichas librerias, tendras que incluirlo en tu programa poniendo la ruta completa a la libreria  a  usar...

Suerte!!!Giño              
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado cartle

  • PIC10
  • *
  • Mensajes: 7
RE: Librerías
« Respuesta #2 en: 03 de Enero de 2006, 13:59:00 »
Gracias por contestar tan rápido vszener. Estoy utilizando el lenguaje ensamblador del MPLAB y no sé como hacer para tener las librerías en una carpeta común.
Referente a las extensiones, en algunos programas vienen las librerías en ensamblador como .inc y en otros como .lib, supongo que dará igual.

Saludos.

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
RE: Librerías
« Respuesta #3 en: 03 de Enero de 2006, 15:43:00 »
Haber, dentro de la carpeta que crea el Mplab debe haber una que se llame libraries o similar(no te puedo decir con exactitud ya que no estoy en mi ordenador....)y en dicha carpeta estan todas las librerias que puedes usar, si tienes otra creada por ti o simplemente la tienes, para comodidad metela en dicha carpeta con todas las librerias ya existentes, digo esto ya que asi en tu programa solamente tendras que incluirla directamente...pero en caso que no quieras mover libreria a esa carpeta la puedes declarar en tu programa poniendo la ruta completa donde se halla la libreria a utilizar.

Suerte!!!Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Librerías
« Respuesta #4 en: 17 de Enero de 2006, 17:35:00 »
Escrito originalmente por cartle
Gracias por contestar tan rápido vszener. Estoy utilizando el lenguaje ensamblador del MPLAB y no sé como hacer para tener las librerías en una carpeta común.
Referente a las extensiones, en algunos programas vienen las librerías en ensamblador como .inc y en otros como .lib, supongo que dará igual.

Saludos.


Conceptualmente un .INC es un include file.  Ahi se definen constantes y macros... NADA MAS.

En un .h o .asm se definen código relocatable, lo cual se puede luego compilar como una libreria .lib

Solo las .lib son librerias compiladas.

El punto es que como un .inc cuando se le hace include, es como si lo copiaramos en el texto entonces la gente cree que se usan para crear subrutinas pero no es así.  Las .inc es una extensión utilizada para definir eso que aclaré.  Siendo más general, yo podria generar un archivo .yo y agregarlo con un include y también funcionaría! pero esto no quiere decir que yo haya hecho caso a la "norma".  El compilador no va a chillar por todo esto.

Hacer librerlias .lib... no es cosa facil, hay que tener mucho conocimiento sobre código relocatable porque tienes que pensar que para que el código sea realmente portable tiene que permitir ser ubicado en cualquier pagina!  Es por esto que las .lib solo tienen un uso práctico en el .C de microchip, planteados para los PIC18 los cuales no tienen paginas de memoria de programa!!

Te aconsejo uses .h si usas C o .asm si usas assembly.

Si quieres ver ejemplos de que cosas se pone en un .inc, fijate en la carpeta de MPLAB y veras las declaraciones de registros de los microcontroladores.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Librerías
« Respuesta #5 en: 03 de Abril de 2007, 12:53:06 »
Ahora que estoy mirando otros compiladores de C, también me asalta esta duda (ya que el CCS no he visto eso).

estuve leyendo tu post anterior mauricio y te quería preguntar unas cosillas  :):

- quiere decir entonces que con una librería (ó library) ó .lib  ¿puedo tener una función ya compilada?

es decir según entiendo y espero que me corrijan, puedo llamar a una función de esta libreria sin necesidad de que sea compilada de nuevo? entonces el código de ese .lib se guardaría asi como está dentro de .hex final


- el .o que genera el compilador (creo que significa output), pero ¿que papel juega en el proceso de building de un código fuente?

siempre he visto que los compiladores generan una cantidad de archivos, pero realmente desconozco el propósito de varios.





La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Librerías
« Respuesta #6 en: 17 de Abril de 2007, 13:22:46 »
- quiere decir entonces que con una librería (ó library) ó .lib  ¿puedo tener una función ya compilada?

es decir según entiendo y espero que me corrijan, puedo llamar a una función de esta libreria sin necesidad de que sea compilada de nuevo? entonces el código de ese .lib se guardaría asi como está dentro de .hex final
Sí, de hecho cuando usas getc o similar, el compilador no la recompila sino que simplemente la agrega.


- el .o que genera el compilador (creo que significa output), pero ¿que papel juega en el proceso de building de un código fuente?

siempre he visto que los compiladores generan una cantidad de archivos, pero realmente desconozco el propósito de varios.

El .o contiene información útil para el Linker.  realmente no conozco el detalle interno pero en el .o se indica en que sección (con nombre descriptivo) de memoria irá un código además de las variables, el linker luego se encarga de ubicarlo ahí para armar el .hex

Es el linker el que te dirá "amigo, no te queda espacio en tu pic para meter tanto código".  El ensamblador o compilador , trabajará sin estar atento a esto.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Librerías
« Respuesta #7 en: 17 de Abril de 2007, 13:58:50 »
muchas gracias por la aclaración Maunix  :mrgreen:
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek