Pregunta: | 12840 - PROBLEMAS AL COMPILAR UNA DLL EN LINUX CON PASCAL |
Autor: | Gustavo Enriquez |
No he podido compilar una libreria dinámica en pascal para linux. sale el siguiente error
Linking ejemplodll2 ejemplodll2.o: In function `program_init': ejemplodll2.o(.text+0xc): undefined reference to `hola' ejemplodll2.pas(12) Warning: Error while linking este es el ejemplo. El código de la libreria es : //*************************************************************** Library ejemplodll; uses SysUtils; Procedure hola; export; Begin Writeln('hola'); End; exports hola; begin end. //*************************************************** El código del programa es : //*************************************************** program ejemplodll2; uses SysUtils; Procedure hola; external 'ejemplodll'; begin Hola; Readln; end. Gracias por su ayuda |
Respuesta: | jorge alvarenga |
Antes que nada debes ver si el nombre del fuente de la libreria es igual al de la unidad, (o sea ejemplodll.pas) luego debes compilarla.
luego debes guardar el programa (no importa el nombre y lo compilas tambien). Te digo esto porque ya me paso eso, que mi library se llamaba fechas y mi archivo fecha.pas .Me compilaba todo bien pero al llamarla desde un programa cliente no lo encuentra, pues el busca la libreria compilada por el nombre que das en uses Ej. program nada; uses x; begin end. el buscará la libreria compilada x.ppu-x.o, etc segun tu compilador, o sea que debes guardar el fuente como x.pas y compilarlo.Tambien en el encabezado de x.pas debe decir library x; Espero te sirva |