![]() |
carga dinámica de una libreria en linux
En linux las librerías se pueden cargar en forma dinámica como las dll en windows, se denominan shared objects, de ahí la extensión .so.
Estube probando para ver como es el procedimiento, luego de sortear varios problemas cree una libería con freepascal 2.2.0 y construí una aplicación elemental en lazarus para probar la librería. código de la librería:
Esta libreria sirve para calcular las raices de una ecuación de segundo grado. Para probar la librería el código en lazarus es el siguiente:
Sólo he puesto la parte que interesa. Copié la librería en /usr/lib usando sudo cp libequ2n_raices.so /usr/lib Para poder usar el programa usé: sudo chmod 555 test y para ejecutarlo ./test Da un error en la consola: GTKWindowStateEventCB Form1:TForm1 new_window_state=0 changed_mask=1 GTKWindowStateEventCB Form1:TForm1 0 [RMVDStPr] GTKWindowStateEventCB :TPromptDialog new_window_state=0 changed_mask=1 GTKWindowStateEventCB :TPromptDialog 0 [RMVDStPr] At end of ExceptionAddresStack Si alguien ha tenido un problema parecido tal vez lo podría aclarar. Saludos |
Me olvidé de aclarar, anda bien hasta que uno hace click en el botón, se muestran los resultados y al hacer click otra vez en aceptar desaparece todo, el programa se cierra súbitamente.
|
Probablemente el problema sea otro, pero creo que, ya que utilizas Free Pascal, deberías utilizar la librería dynlibs que, entre otras cosas, te hará la vida más fácil si algún día portas el programa a Windows o MacOS X entre otros.
|
La franja horaria es GMT +2. Ahora son las 23:01:06. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi