PDA

Ver la Versión Completa : Ejecucion de apliacion generada en lazarus sobre linux


JCarlosas
07-05-2008, 15:43:58
Hola.
He instalado el lazarus sobre ubuntu y me funciona de maravillas.
Los ejecutables generados con lazarus los puedo ejecutar sin problemas en el mismo ordenador que los compile y funcionan bien.
Pero cuando me llevo esos ejecutables para otra maquina donde no tenga instalado el free pascal, la aplicacion no me funciona.
Obviamente lo que esta ocurriendo es que mi aplicacion final, necesita de modulos que no han sido instalado y que free pascal y/o lazarus instalan.
La duda es.
Como puedo saber en ubuntu, y linux en general, de que modulos depende mi aplicacion(O sea los equivalentes a .dll en windows).
O algo mas sencillo aun.
Conoce alguien cuales son los modulos con que debo llevar mi aplicacion para que me funcione correctamente en una maquina donde no se haya instalado el free pascal/Lazarus de antemano.
Saludos y gracias por adelantado por cualquier ayuda.

PD: En la version de windows no he tenido este problema. El ejecutable lo he podido mover de una maquina para otra sin problemas tenga instalado o no el Lazarus.

Casimiro Notevi
07-05-2008, 19:44:03
Si la has compilado en windows no funcionará en linux, debes compilar en linux para que funcione en linux.

gorrister
11-05-2008, 20:14:48
Evidentemente si vuelves a leer su mensaje deja bien claro que LO HA COMPILADO EN GNU/LINUX. claramente lo dice y también comenta que no tiene problema en Windows(tm). Su problema es que no puede ejecutar su aplicación de Linux a Linux.

Sobre al autor poco puedo ayudarte puesto que yo estoy empezando con Lazarus desde GNU/Linux, aunque he desarrollado otras aplicaciones para Linux en C/C++ y lenguajes varios, mira a ver si puedes crear un paquete .deb, el cual automáticamente instalará las dependencias.

Suerte y ya nos cuentas si diste con la solución

Casimiro Notevi
11-05-2008, 21:03:40
No sé cómo leí el mensaje, seguramente me salté esa parte :o

Robert01
11-05-2008, 21:15:33
Hola

Las dll's de windows se llaman shared objects (.so) en linux, por lo menos en kubuntu, y se instalan generalmente en /usr/lib/

Por lo menos las librerías o bibliotecas que se hacen con lazrus o frepascal.

Si tenés alguna librería en la compu doncde compilaste el programa vas a tener que llevarla a la otra compu.

Es posible que en la otra compu no tengas instalaldas gtk o gtk2, no se si puede ser porque no nos dices nada sobre los errores.
Yo no se si una vez compilado un programa requiere que estas librerías estén instaladas en el sistema para que se ejecute.

También puede ser que sea un problema de permisos.

Preguntale a Casimiro, seguro que conoce la respuesta a estos interrogantes.

Salu2

JCarlosas
10-06-2008, 16:45:11
Lo que estoy buscando y no he encontrado aun, es alguna herramienta en Linux que me permita conocer dado un ejecutable cuales son los modulos (.so) del cual el depende.
Porque supongo que no sea necesario copiar todos los .so de lazarus y freepascal con cada aplicacion que compile.

Saludos y muchas gracias a todos por la ayuda.
JCarlos

mightydragonlor
20-06-2008, 20:27:33
Es poco lo que he trabajado con lazarus en linux, pero supongo que cuando generas los instaladores deb se debe hacer una busqueda de dependencias y el instalador automaticamente las reconocerá.

JCarlosas
23-06-2008, 14:21:35
Y se pueden generar archivos de instalacion desde el propio Lazarus???.
O se necesita otra herramienta a aparte???.

No tengo mucha experiencia con Linux. No se que herramienta usar y mucho menos como usarla, para generar un instalador en linux.
Saludos y disculpen mi desconocimiento.

MAXIUM
26-06-2008, 01:40:58
Es penoso, es como trabajar con Visual Basic, llevas tu aplicación a otro PC y ... sorpresa te faltan quien sabe que DLL. Aunque para uno experimentado en Windows no hay mucho problema, pero es igual de latozo, más aun para aquellos que desconocemos el mundo Linux.

Hace años hice una pregunta similar en este foro y sigue sin respuesta ¿como quieren que amemos al pingüino si este se nos resvala?

mightydragonlor
26-06-2008, 16:20:07
No, Lazarus no puede generar sus propios instaladores, para generar los instaladores en paquetes deb esta página te puede ser de utilidad [Click aquí (http://www.ubuntu-es.org/index.php?q=node/11143)].

Dean
07-07-2008, 19:03:15
si revisan bien el lazuruz veran que hay una opcion para escoger que plataforma usar, te ofrece
win32
gtk
gtk2
gnome
y otros mas (creo que para solaris y eso)

ahora esta operacion hace que todas las librerias sean recompiladas
y se demora bastante.......(nada como delphi y kilyx:) y por lo general da error en la version 0.92 de lazaruz se bloquea convirtiendo la libreria de impresoras ...
imcompresible bueno revisen esa opcion es la ultima del menu herramientas
si a alguien le funciona por favor que lo diga
a porsupuesto si tratas de compilar lazaruz para gtk y no lo tienes instalado(yo uso windows) supongo que tengas problemas

JCarlosas
09-07-2008, 13:45:49
A mi me ocurrio igual con la GTK para windows.
Finalmente reinstale de nuevo el lazarus y le deje las opciones que vienen implicitas (o sea por defecto).
Despues de eso le he instalado varias libreria(ZeosLib, FreeReport, entre otras) y me trabaja bien. Tanto en linux, como en windows.
Lo que sigo es sin poder saber con cuales libreria debo cargar en linux, para llevarme mi aplicacion para otra maquina linux donde no tenga instalado el lazarus. :(.

Por cierto, en caso que instales algo y se te quede bloqueado el lazarus al intentar levantarlo nuevamente, puedes borrar el ejecutable y buscar un backup que el lazarus hace de si mismo pero con la "version" del ejecutable de lazarus anterior a la compilacion y entonces renombrarla. Y bueno por supuesto cambiar la configuracion o la lista de componentes a instalar, antes de volver a compilar.

Saludos
JCarlos

donald shimoda
09-07-2008, 19:22:55
Pero cuando me llevo esos ejecutables para otra maquina donde no tenga instalado el free pascal, la aplicacion no me funciona.

Ayudaria mucho que nos pegues que error te da en la consola (corre la aplicacion desde la consola) y tendras un detallado de porque no funciona.


Saludos.

--
Donald Shimoda [Team RO]

http://blogs.remobjects.com/blogs/donald

mightydragonlor
11-07-2008, 01:43:00
si revisan bien el lazuruz veran que hay una opcion para escoger que plataforma usar, te ofrece
win32
gtk
gtk2
gnome
y otros mas (creo que para solaris y eso)

ahora esta operacion hace que todas las librerias sean recompiladas
y se demora bastante.......(nada como delphi y kilyx:) y por lo general da error en la version 0.92 de lazaruz se bloquea convirtiendo la libreria de impresoras ...
imcompresible bueno revisen esa opcion es la ultima del menu herramientas
si a alguien le funciona por favor que lo diga
a porsupuesto si tratas de compilar lazaruz para gtk y no lo tienes instalado(yo uso windows) supongo que tengas problemas

Esto sucede ya que las dependencias gtk y gtk2 no están instaladas "LINUX" y en el caso de "windows" no encuentra la libreria gtk o gtk2 "DLL".

Lo que pasa con el ejecutable en lazarus es similar a lo que pasa en "windows" cuando intentamos acceder a Firebird sin estar instalado o sin tener la gds32.dll "en la versiones anteriores a la 2", cuando la aplicacion usa un componente de una dependencia que no está instalada, simpemente no funciona, el problema es que casi para cada tipo de componente existe una dependencia, la que se encarga de dibujar la aplicación es QT, GTK, GTK2 y otras, para compilar la aplicacion debes tener encuenta el entorno en que se ejecutará y todas las dependencias que usas y una alternativa para esto es Debcreator (http://www.ubuntips.com.ar/2007/07/18/debcreator-crear-paquetes-deb-facilmente/).

PD1: espero les sirva de algo este pequeño aporte.
PD2: puedo estar equivocado en algunas cosas ya que soy un poco nuevo con esto de GNU/LINUX y espero que de ser así me lo hagan saber.

JCarlosas
26-02-2009, 16:02:32
Hola.
Muchas gracias a los que respondieron sobre el tema.
Finalmente encontre la solucion con ayuda de un amigo.
Cuando se compila con la configuracin implicita, Lazarus compila para GKT.
Y Gnome usa GKT2. Yo tenia instalado solamente GNome en mi configuracion de UBUNTU.
Cambie la configuracion de compilacion para que compilara para GKT2 y ya funciona OK en los demas Ubuntu donde no tengo instalado Lazarus.
Saludos y gracias a todos.
JCarlos

MAXIUM
26-02-2009, 17:41:08
Y así se quejan de Windows jojo!!!. Gracias JCarlos.

arturom
22-04-2009, 19:06:17
Ya hace algún tiempo de este mensaje, pero quizás todavía te pueda ayudar.
Para conocer las librerías que usa cualquier programa en Linux, usa "ldd programa" te dirá de qué librerías depende y debes tener instaladas.

Saludos.

fsolispa
02-12-2009, 03:50:31
Hola.
Muchas gracias a los que respondieron sobre el tema.
Finalmente encontre la solucion con ayuda de un amigo.
Cuando se compila con la configuracin implicita, Lazarus compila para GKT.
Y Gnome usa GKT2. Yo tenia instalado solamente GNome en mi configuracion de UBUNTU.
Cambie la configuracion de compilacion para que compilara para GKT2 y ya funciona OK en los demas Ubuntu donde no tengo instalado Lazarus.
Saludos y gracias a todos.
JCarlos
Hola, sucede que ya probé lo que comentas, pero me manda el siguiente mensaje "El programa no se puede abrir por que no existe ninguna aplicación apropiada para una instalación automática que sea valida para este tipo de archivo

mg1821
19-12-2009, 00:04:33
es cierto lo del ldd, ya lo habia olvidado, ya que lo use en kylix y de ahi lo que hice fue usar una herramienta de loki que era la q usaba el kylix y para que muy buena y facil de configurar, lograba que instale todo y funcionara bien incluyendo que apareciera en el menu del sistema y en el escritorio; sin embargo ya de eso mucho tiempo.:o