Recent

Author Topic: Crear ejecutable para que funcione en otro PC  (Read 1375 times)

Angel Rivas

  • Newbie
  • Posts: 3
Crear ejecutable para que funcione en otro PC
« on: August 28, 2018, 10:31:27 am »
Hola, soy nuevo en Lazarus y me ha surgido un problema y espero que alguien pueda ayudarme. He creado un programa en Lazarus para la gestión de una base de datos MySQL5.1 y éste funciona sin problemas en el PC donde lo programo. Pero no consigo un ejecutable que me funcione en otro PC. En Delphi teniamos la opción "Build with runtime packages" pero en Lazarus no encuentro nada parecido. Uso la versión 1.8.4 (FPC 3.0.4) de Lazarus a 32 bits. El programa lo compilo en un Windows 7 Pro 64 bits e intento ejecutarlo en un PC con Windows 10 a 64 bits. Al ejecutarlo no da mensaje de error alguno, simplemente no se representa ni el form.

Muchas gracias por la ayuda!

lucamar

  • Hero Member
  • *****
  • Posts: 504
Re: Crear ejecutable para que funcione en otro PC
« Reply #1 on: August 28, 2018, 02:51:50 pm »
Por lo que yo sé, en Lazarus no hay equivalente a los "runtime packages" de Delphi (que en realidad no son más que DLLs algo especiales). Todo lo que necesitas---excepto DLLs externas, claro, como el cliente MySQL, en tu caso---está incorporado en el ejecutable. Es el equivalente a un compilado "normal" en Delphi.

Si puedes, compila tu aplicación en modo debug, con heaptrc, lineinfo, etc. y trata de ver qué está haciendo--usa Debugln()--a cada paso. No deberías tener problemas sólo por copiar un ejecutable  de un ordena a otro ... a no ser que en el segundo haya alguna dependencia importante no satisfecha---como el susodicho clente MySQL, p.e.
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus 1.8.4/FPC 3.0.4 on:
(K)Ubuntu 11..16, Windows XP SP3 (Home/Prof.) and various DOS incarnations.

Angel Rivas

  • Newbie
  • Posts: 3
Re: Crear ejecutable para que funcione en otro PC
« Reply #2 on: August 28, 2018, 03:17:53 pm »
Gracias Lucamar, he subido el ejecutable tanto en modo debug como en modo normal (casi 45 Mb de diferencia, bestial) y ninguno de los dos abre la ventana ni da mensajes de error. ¿Se puede ejecutar el debug en un PC sin tener instalado el Lazarus?. Una solución que se me ocurre es instalar el Lazarus en el otro PC y luego desinstalarlo, pero creo que no es lo más operativo. Si al menos diera algun mensaje de error...

440bx

  • Sr. Member
  • ****
  • Posts: 391
Re: Crear ejecutable para que funcione en otro PC
« Reply #3 on: August 28, 2018, 04:04:33 pm »
ninguno de los dos abre la ventana ni da mensajes de error. ¿Se puede ejecutar el debug en un PC sin tener instalado el Lazarus?.
Dices que ninguno de los dos abre la ventana ni da mensaje qualquiera de error, es my possible que la razon sea que hay una dependiencia en tu programa que no es satisfecha.  Si el cargador (loader) del systema operative no puede resolver una o mas dependencias, es bastante comun que el programa no funciona y no obtienes error alguno.  Si eso es lo que sucede con tu programa, no sera possible usar un "debugger" ya que el systema operative no puede cargar el programa.

El primer paso seria usar un programa como Dumpbin y ver que funciones tu programa esta importando.  Verifica que todas las funciones que importa son disponibles.  Basta con una sola function que no sea disponible para que el systema operative no pueda cargar el programa. Si no tienes Dumpbin, hay un programa gratis, CFF Explorer, escrito por Daniel Pistelli que hace lo mismo que tambien puede server.  Otra possibilidad es usar objdump que es installado automaticamente con Lazarus.

Quizas esta sugerencia te sea util para determinar la causa del problema.




Angel Rivas

  • Newbie
  • Posts: 3
Re: Crear ejecutable para que funcione en otro PC
« Reply #4 on: August 28, 2018, 04:14:59 pm »
Resuelto!!. A medias... El problema estaba en la instalación de Lazarus. He arrancado una maquina virtual con windows 7 a 64 bits. El programa no funciona. He instalado el Lazarus en la maquina virtual, compilado el programa y funciona sin problemas. Ese ejecutable lo he subido al PC donde no funcionaba y ahora funciona sin problemas. He comparado todas las opciones del proyecto entre la instalacion fallida y la maquina virtual y aparentemente son las mismas. Incluso he desinstalado y vuelto a instalar y sigue con el mismo problema. Al menos ya puedo subir el programa creado y dejarlo funcionando. Asi que abro otro hilo... ¿que le puede pasar a la instalación fallida para que el ejecutable creado no funcione en otro PC?. Porque esta claro que es problema de la configuración del Lazarus.