2009-09-01 12 views
22

Dopo aver eseguito problemi di compatibilità con C#, ASP.NET, MS Access, Linux e Mono, ho deciso di programmare in una lingua che è multipiattaforma , open source e compatibile con database incorporati che sono anche compatibili con molte piattaforme. Ho ristretto la mia scelta fino a TCL.I passaggi più semplici per convertire TCL TK in un'applicazione stand alone

Prima di iniziare un'applicazione di esempio con TCL, volevo vedere quanto fosse facile creare un'applicazione stand alone. Ho acquistato un libro intitolato "Programmazione pratica in TCL e TK", scaricato TCLkit e FreeWrap, ma ho difficoltà a trovare un modo metodologico per convertire TCL in TK (Desiderio) in un'applicazione standalone.

Qualcuno sarebbe in grado di fornire semplici passaggi per la conversione di uno script TCL TK, ad esempio un'etichetta con il testo su di esso, in un'applicazione o una risorsa Web che ha una spiegazione abbastanza semplice in avanti?

risposta

24

Per creare uno starpack è necessario a) un runtime tclkit, b) sdx.kit. Hai anche bisogno di un "basekit", l'eseguibile che sarà incluso nel tuo codice tcl. Per questo esempio presumo che tu stia creando un'applicazione per la stessa piattaforma su cui stai lavorando. È possibile creare un basekit semplicemente copiando tclkit (o tclkit.exe su Windows) a un altro nome, come ad esempio "basekit"

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

Ora, creare il codice che si desidera avere avvolto in un file eseguibile. La convenzione è quello di creare una directory con il nome della tua app e il suffisso ".vfs" (per 'file system virtuale'), quindi creare un file chiamato 'main.tcl' in quella directory:

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

Ora per fare il wrapping: per questo avrai bisogno del file sdx.kit. Supponendo che e tclkit (o tclkit.exe) sono nella directory di lavoro corrente, si avvolge la vostra applicazione in questo modo:

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

Il comando involucro sa quando si dà il "myapp" argomento che dovrebbe avvolgere il contenuto di myapp.vfs, e che dovrebbe cercare un file denominato "main.tcl" in quella directory per essere il punto di ingresso del programma. Puoi mettere qualunque altro file che vuoi in quella directory e saranno tutti avvolti, inclusi i file binari specifici della piattaforma, i file di immagini e qualsiasi altra cosa tu voglia raggruppare.

Ora è disponibile un file eseguibile, "myapp", ovvero l'applicazione avvolta.

Se si dispone dei tclkits per diverse architetture, è possibile utilizzarli (sostituendo 'basekit' sulla riga di comando con il kit per l'architettura di destinazione) per eseguire la compilazione incrociata per altre piattaforme.

Per ulteriori informazioni vedere How to create my first Starpack sul Tcl'ers Wiki

+0

Grazie Bryan - La tua risposta è eccezionale. Dovrei essere in grado di iniziare ora. DFM – DFM

+0

Domanda su sdx.kit e tclkit - Non riesco a ottenere sdx e tclkit su qwrap. Dopo aver trascorso alcune ore a cercare di ottenere sdx e tcl su qwrap, ho continuato a ricevere il nome errato del comando di errore. Ho persino seguito le istruzioni web e ho modificato tclkit.exe in tclkitsh.exe. Penso di avere un problema con il file sdx. Come si scarica il file sdx? Tutto quello che posso fare è copiare il testo nel blocco note e modificare l'estensione in .kit. Il file sdx non viene scaricato come un normale file e ho provato più versioni (? Grazie DFM – DFM

+0

In qualche modo la copia del testo di sdx.kit non funzionerà, si tratta di un file binario. Forse stai ricevendo il codice sorgente? Scarica da questo link: http://www.equi4.com/pub/sk/sdx.kit. –

Problemi correlati