2009-09-01 11 views
22

Después de toparme con los principales problemas de compatibilidad con C#, ASP.NET, MS Access, Linux y Mono, he decidido programar en un lenguaje que es multiplataforma , de código abierto y compatible con bases de datos integradas que también son compatibles con muchas plataformas. Reduje mi elección a TCL.Los pasos más simples para convertir TCL TK a una aplicación independiente

Antes de comenzar una aplicación de muestra con TCL, quería ver lo fácil que era crear una aplicación independiente. Compré un libro titulado "Programación práctica en TCL y TK", descargué TCLkit y FreeWrap, pero tengo problemas para encontrar una forma metodológica de convertir TCL en TK (Deseo) en una aplicación independiente.

¿Alguien podría dar pasos simples para convertir un script TCL TK, como una etiqueta con texto, en una aplicación, o un recurso web que tenga una explicación bastante directa?

Respuesta

24

Para construir un Starpack necesita a) un tiempo de ejecución tclkit, b) sdx.kit. También necesita un "kit base", el ejecutable que se ajustará con su código tcl. Para este ejemplo, supongo que está creando una aplicación para la misma plataforma en la que se está ejecutando. Se puede crear un BaseKit simplemente copiando tclkit (o tclkit.exe en las ventanas) a otro nombre, como "BaseKit"

% ls 
sdx.kit tclkit 
% cp tclkit basekit 
% ls 
basekit sdx.kit tclkit 

Ahora, crear el código que desea han envuelto en un archivo ejecutable. La convención es crear un directorio con el nombre de su aplicación y el sufijo ".vfs" (por 'sistema de archivos virtual'), a continuación, crear un archivo llamado 'main.tcl' en ese directorio:

% mkdir myapp.vfs 
% cat > myapp.vfs/main.tcl 
package require Tk 
label .l -text "Hello, world" 
pack .l 
^D 
% ls myapp.vfs 
main.tcl 

Ahora para hacer la envoltura: para esto necesitarás el archivo sdx.kit. Suponiendo que tclkit y (o tclkit.exe) se encuentran en el directorio de trabajo actual, en que se coloca a su aplicación como esta:

% ./tclkit sdx.kit wrap myapp -runtime basekit 
1 updates applied 
% ls 
basekit myapp myapp.vfs sdx.kit tclkit 

El comando envoltura sabe cuando le das la "miaplicacion" argumento de que se debe envolver los contenidos de myapp.vfs, y que debe buscar un archivo llamado "main.tcl" en ese directorio para ser el punto de entrada del programa. Puede colocar cualquier otro archivo que desee en ese directorio y todos estarán incluidos, incluidos los archivos binarios específicos de la plataforma, los archivos de imagen y cualquier otra cosa que desee incluir.

Ahora tiene un archivo ejecutable, 'myapp', que es la aplicación envuelta.

Si tiene los tclkits para diferentes arquitecturas, puede usarlos (reemplazando 'basekit' en la línea de comandos con el kit para la arquitectura de destino) para realizar compilaciones cruzadas para otras plataformas.

Para más información ver How to create my first Starpack en el Tcl'ers Wiki

+0

Gracias Bryan - Su respuesta se ve muy bien. Debería poder comenzar ahora. DFM – DFM

+0

Pregunta sobre sdx.kit y tclkit: parece que no puedo obtener sdx y tclkit en qwrap. Después de pasar unas horas tratando de obtener sdx y tcl para qwrap, seguí obteniendo el error nombre del comando no válido. Incluso seguí las instrucciones web y cambié el tclkit.exe a tclkitsh.exe. Creo que tengo un problema con el archivo sdx. ¿Cómo se descarga el archivo sdx? Todo lo que puedo hacer es copiar el texto en el bloc de notas y cambiar la extensión a .kit. El archivo sdx no se descarga como un archivo normal, y he intentado varias versiones (?) Gracias DFM – DFM

+0

De alguna manera, copiar el texto de sdx.kit no funcionará, es un archivo binario. Tal vez estás obteniendo el código fuente? Descargue de este enlace: http://www.equi4.com/pub/sk/sdx.kit. –

Cuestiones relacionadas