Translate

sábado, 4 de junio de 2016

Crear un ejecutable (portable)

Bien, esto es muy fácil. Vamos a usar SBCL (disponible en http://sbcl.org/platform-table.html) y LTK. Necesitamos primero crear la aplicación:

(defpackage :mi-programa
      (:use :common-lisp :ltk)
      (:export #:main))

(in-package :mi-programa)

(defun main ()
     (setf *debug-tk* nil)
     (with-ltk ()
          (let ((b (make-instance 'button
                                                 :text "Hola mundo!"
                                                  :command (lambda ()
                                                                                 (do-msg "Adios!")
                                                                                 (setf *exit-mainloop* t)))))
                 (place b 100 100))))

Hay que guardarlo, obviamente en un archivo de texto, yo lo guarde como: ventanita.lisp. (use el emacs para escribirlo). Correcto!, ahora hay que construir la aplicación, se puede usar un script, yo sin embargo prefiero hacerlo directamente en forma manual desde el intérprete del SCBL (aclaro que coloco la carpeta donde yo guarde mis archivos: "mis-programas")

> (compile-file "c:/mis-programas/ltk.lisp") ;hay que esperar que termine el proceso! :-) luego...
> (load "c:/mis-programas/ltk.fasl")
> (compile-file "c:/mis-programas/ventanita.lisp")
> (load "c:/mis-programas/ventanita.fasl")
> (save-lisp-and-die "c:/mis-programas/ventanita.core")

Si todo sale bien, el SCBL se cierra y se genera ventanita.core.

Hay que copiar el archivo sbcl.exe que se encuentra en la carpeta de instalación del programa en la carpeta donde esta "ventanita.core". Yo lo tengo en "C:\Program Files\Steel Bank Common Lisp\1.3.6>". Ahora hay que crear un archivo de proceso de lotes que invoca a nuestro pequeño programa de ejemplo. En el caso de Windows se crea un archivo de texto: ventanita.bat y se escribe en éste la siguiente línea:

sbcl --core ventanita.core --noinform --eval "(progn (mi-programa:main) (quit))"

Genial!!! Ahora solo hay que hacer doble click en nuestro archivo ventanita.bat para ejecutar el programa. También se puede crear un acceso directo a ventanita.bat!!! 




Para llevarlo a otra PC y ejecutarlo, solo necesitas tres archivos:

sbcl.exe
ventanita.core
ventanita.bat

Que podrían estar comprimidos en un solo .zip. 
Gracias por mirar y compartir este blog. Saludos y ojalá les guste la publicación.


Aclaración: Si tenemos alguna distribución linux, tenemos que crear un script con la extensión .sh y en las propiedades del archivo hay que activarlo como "archivo ejecutable". En la primera del script va: #! /bin/bash. Aquí hay una guía para generar scrpits en linux: http://www.escomposlinux.org/fserrano/index_163.html 
El archivo que necesitas en el caso de contar con linux se llama sbcl (a secas) para encontrarlo abre una terminal y tipea: which sbcl



No hay comentarios:

Publicar un comentario