2009-09-01 14 views
22

Nachdem ich in große Kompatibilitätsprobleme mit C#, ASP.NET, MS Access, Linux und Mono geraten bin, habe ich mich entschieden, in einer Sprache zu programmieren, die plattformübergreifend ist , Open Source und kompatibel mit eingebetteten Datenbanken, die auch mit vielen Plattformen kompatibel sind. Ich habe meine Wahl auf TCL beschränkt.Die einfachsten Schritte zum Konvertieren von TCL TK in eine eigenständige Anwendung

Bevor ich mit einer Beispielanwendung mit TCL begann, wollte ich sehen, wie einfach es ist, eine eigenständige Anwendung zu erstellen. Ich kaufte ein Buch mit dem Titel "Praktische Programmierung in TCL und TK", heruntergeladen TCLkit und FreeWrap, aber ich habe Probleme, einen methodischen Weg zur Umwandlung TCL in TK (Wunsch) in eine eigenständige Anwendung zu finden.

Wäre jemand in der Lage, einfache Schritte zur Umwandlung eines TCL TK-Skripts, wie ein Etikett mit Text darauf, in eine Anwendung oder eine Web-Ressource, die eine ziemlich direkte Erklärung hat?

Antwort

24

Um ein Starpack zu bauen, benötigen Sie a) eine tclkit Laufzeit, b) sdx.kit. Sie benötigen auch ein "basekit", die ausführbare Datei, die mit Ihrem tcl-Code verpackt wird. In diesem Beispiel gehe ich davon aus, dass Sie eine Anwendung für dieselbe Plattform erstellen, auf der Sie arbeiten. Sie können durch einfaches Kopieren tclkit (oder tclkit.exe auf Windows) auf einen anderen Namen, wie „BaseKit“

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

Jetzt eine BaseKit erstellen, erstellen Sie den Code, den Sie in eine ausführbare Datei eingewickelt werden sollen. Die Konvention ist ein Verzeichnis mit dem Namen des App und dem Suffix „.vfs“ (für ‚virtuelles Dateisystem‘) zu erstellen, dann erstellen Sie eine Datei namens ‚main.tcl‘ in diesem Verzeichnis:

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

Um das Wrapping zu machen, benötigen Sie die Datei sdx.kit. Unter der Annahme, es und tclkit (oder tclkit.exe) sind in Ihrem aktuellen Arbeitsverzeichnis, wickeln Sie Ihre Anwendung wie folgt aus:

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

Der Verknüpfungsbefehl weiß, wenn Sie es das Argument „myapp“ geben, dass es den Inhalt wickeln sollte von myapp.vfs, und dass es nach einer Datei mit dem Namen "main.tcl" in diesem Verzeichnis suchen sollte, um der Programmeinstiegspunkt zu sein. Sie können alle anderen gewünschten Dateien in dieses Verzeichnis einfügen, und sie werden alle umschlossen, einschließlich plattformspezifischer Binärdateien, Bilddateien und allem, was Sie gebündelt haben wollen.

Sie haben jetzt eine ausführbare Datei, 'myapp', das ist die verpackte Anwendung.

Wenn Sie die tclkits für verschiedene Architekturen haben, können Sie diese verwenden (indem Sie "basekit" in der Befehlszeile durch das Kit für die Zielarchitektur ersetzen), um sie für andere Plattformen zu kompilieren.

Weitere Informationen finden Sie How to create my first Starpack auf dem Tcl'ers Wiki

+0

Danke Bryan - Ihre Antwort sieht gut aus. Ich sollte jetzt anfangen können. DFM – DFM

+0

Frage zu sdx.kit und tclkit - Ich kann nicht scheinen, sdx und tclkit zu qwrap zu bekommen. Nachdem ich ein paar Stunden damit verbracht habe, sdx und tcl zu qwrap zu bekommen, habe ich immer wieder den ungültigen Befehlsnamen erhalten. Ich folgte sogar den Web-Anweisungen und änderte die tclkit.exe in tclkitsh.exe. Ich glaube, ich habe ein Problem mit der SDX-Datei. Wie lade ich die SDX-Datei herunter? Alles was ich tun kann, ist den Text in den Editor zu kopieren und die Erweiterung in .kit zu ändern. Die SDX-Datei wird nicht wie eine normale Datei heruntergeladen, und ich habe versucht, mehrere Versionen (?) Danke DFM – DFM

+0

Irgendwie wird das Kopieren des Textes von sdx.kit nicht funktionieren - es ist eine Binärdatei. Vielleicht bekommst du den Quellcode? Download von diesem Link: http://www.equi4.com/pub/sk/sdx.kit. –

Verwandte Themen