[Lazarus-es] Problema con libreria c

Maikel Enrique Pernía Matos reprepoli2mz en infomed.sld.cu
Jue Ago 16 21:57:28 CEST 2012


Con esto tengo mis dudas, he utilizado poco librerías de terceros o  
propias y en app que he desarrollado en object pascal (estas han sido  
desde delphi); pero recuerdo que cada librería se aconmpañaba con un  
fichero *.pas que declaraba las funciones que dicha librería exportaba  
y entonces era que podía vincularlas con mi app esto desde la clausula  
"use" de mi fichero *.pas. En C y C++ lo ha realizado con más  
frecuencia fundamentalmente desde GNU/Linux y de manera similar cada  
librería se acompaña con un fichero de cabeceras *.h donde se declaran  
las mismas funciones que se exportan desde la librería ya sea dinámica  
*.so o estática *.a y se vinculan a mi app así: #include  
<nombre_libreria.h> o  #include "nombre_libreria.h".
Pregunto:
¿Qué habría que hacer, crear la librería y llevar los *.h a *.pas o  
utilizar la librería y los *.h?

El jue, 16-08-2012 a las 16:37 -0300, Maxi escribió:
2012/8/16 Pedraza Sergio <spedraza69 en hotmail.com>:
> > Te paso los archivos make tanto de windows como Linux
> >
> > make_win32
> > --------------------------------------------------
> > INCLUDE=-I.
> > CXXFLAGS=$(INCLUDE) -DP_WIN32 -DP_WIN32_GCC
> > FISCAL_LIB=clasefiscal.a
> > all: $(FISCAL_LIB) clasefiscal
> >
> > #depend:
> > #    makedepend $(INCLUDE) *.cpp
> >
> > clasefiscal_objs =  debug.o Excepcion.o ImpresorFiscal16Bits.o \
> >         ImpresorFiscal8Bits.o ImpresorFiscal.o Mutex.o P262_100.o \
> >         P272_100.o P320_100.o P321_100.o P322_100.o P322_201.o P322.o \
> >         P330_100.o P330_201.o P330_202.o P330.o P425_100.o P425_201.o \
> >         P425.o P435_100.o P435_101.o P435.o P614_100.o P615_100.o \
> >         P715_100.o P715_201.o P715_302.o P715_403.o P715.o P950_100.o \
> >         P951_100.o PJ20_100.o PPL8_100.o PPL8_201.o PPL8.o PPL9_100.o \
> >         PPR4_100.o PPR5_100.o PPR5_201.o PPR5.o PPL23_100.o PPL23_101.o \
> >         PPL23.o Protocolo.o PuertoSerie.o Socket.o ssplit.o Chars.o \
> >         Select.o
> > $(FISCAL_LIB): $(clasefiscal_objs)
> >    ar rvu $(FISCAL_LIB) $(clasefiscal_objs)
> >    ranlib $(FISCAL_LIB)
> >
> > clasefiscal: ClaseFiscal.o $(FISCAL_LIB)
> >    $(CXX) ClaseFiscal.o $(FISCAL_LIB) -o clasefiscal -lwsock32
> > --------------------------------------------------
> >
> > makefile_linux
> > ---------------------------------------------------
> > INCLUDE=-I.
> > CXXFLAGS=$(INCLUDE) -DP_LINUX
> > FISCAL_LIB=clasefiscal.a
> > all: $(FISCAL_LIB) clasefiscal
> >
> > #depend:
> > # makedepend $(INCLUDE) *.cpp
> >
> > clasefiscal_objs =  debug.o Excepcion.o ImpresorFiscal16Bits.o \
> >         ImpresorFiscal8Bits.o ImpresorFiscal.o Mutex.o P262_100.o \
> >         P272_100.o P320_100.o P321_100.o P322_100.o P322_201.o P322.o \
> >         P330_100.o P330_201.o P330_202.o P330.o P425_100.o P425_201.o \
> >         P425.o P435_100.o P435_101.o P435.o P614_100.o P615_100.o \
> >         P715_100.o P715_201.o P715_302.o P715_403.o P715.o P950_100.o \
> >         P951_100.o PJ20_100.o PPL8_100.o PPL8_201.o PPL8.o PPL9_100.o \
> >         PPR4_100.o PPR5_100.o PPR5_201.o PPR5.o PPL23_100.o PPL23_101.o \
> >         PPL23.o Protocolo.o PuertoSerie.o Socket.o ssplit.o Chars.o \
> >         Select.o
> > $(FISCAL_LIB): $(clasefiscal_objs)
> > ar rvu $(FISCAL_LIB) $(clasefiscal_objs)
> > ranlib $(FISCAL_LIB)
> >
> > clasefiscal: ClaseFiscal.o $(FISCAL_LIB)
> > $(CXX) ClaseFiscal.o $(FISCAL_LIB) -o clasefiscal -lpthread
> > --------------------------------------------------------------------------
> >
> > La pregunta es como hago para compilar y transformar el codigo en c en una
> > libreria para windows o Linux ?
> >
> > Muchas Gracias
> > Sergio Pedraza
> >
> >
> > --------------------------------------------------
> > From: "Maxi" <maximiliano.duarte en gmail.com>
> > Sent: Monday, August 13, 2012 11:54 AM
> > To: "Spanish version of Lazarus List"
> > <lazarus-es en lists.lazarus.freepascal.org>
> > Subject: Re: [Lazarus-es] Problema con libreria c
> >
> >> Y el codigo?
> >>
> >> --
> >> El que pregunta aprende, y el que contesta aprende a responder.
> >>
> >> No a la obsolecencia programada:
> >>
> >>  
> http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html
> >>
> >> Linux User #495070
> >> http://domonetic.com/blog
> >>
> >> _______________________________________________
> >> Lazarus-es mailing list
> >> Lazarus-es en lists.lazarus.freepascal.org
> >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
> >>
> >
> > _______________________________________________
> > Lazarus-es mailing list
> > Lazarus-es en lists.lazarus.freepascal.org
> > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
> con make desde linux te crea el archivo.o que el la libreria, si tenes
> todos los fuentes no necesitas transformarlo a pascal sino generar la
> dll y usarla con las declaraciones en tu fuente y listo. Creoque podes
> usar make en windows.
>
> -- 
> El que pregunta aprende, y el que contesta aprende a responder.
>
> No a la obsolecencia programada:
> http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html
>
> Linux User #495070
> http://domonetic.com/blog
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


--

Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas

Infomed: http://www.sld.cu/




More information about the Lazarus-es mailing list