2009-09-01 19 views
22

Po napotkaniu poważnych problemów z kompatybilnością z C#, ASP.NET, MS Access, Linux i Mono, zdecydowałem się programować w języku, który jest wieloplatformowy , open source i kompatybilny z wbudowanymi bazami danych, które są również kompatybilne z wieloma platformami. Zawęziłem mój wybór do TCL.Najprostsze kroki do konwersji TCL TK na samodzielną aplikację

Zanim zacząłem przykładową aplikację z TCL, chciałem zobaczyć, jak łatwo było stworzyć samodzielną aplikację. Kupiłem książkę zatytułowaną "Praktyczne programowanie w TCL i TK", pobrano TCLkit i FreeWrap, ale mam problem ze znalezieniem metody metodycznej konwersji TCL w TK (Wish) w samodzielną aplikację.

Czy ktokolwiek byłby w stanie zapewnić proste kroki w kierunku konwersji skryptu TCL TK, takiego jak etykieta z tekstem, do aplikacji lub zasobu sieciowego z dość prostym wyjaśnieniem?

Odpowiedz

24

Aby zbudować pakiet, potrzebujesz: a) środowiska wykonawczego tclkit, b) sdx.kit. Potrzebujesz również "basekit", pliku wykonywalnego, który będzie zawijany twoim kodem tcl. W tym przykładzie założę, że tworzysz aplikację dla tej samej platformy, na której pracujesz. Można utworzyć basekit przez zwykłe skopiowanie tclkit (lub tclkit.exe na oknach) do innej nazwy, takie jak „basekit”

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

Teraz utworzyć kod, który chcesz mieć zawinięte do pliku wykonywalnego. Konwencja jest stworzenie katalogu z nazwą aplikacji i przyrostka „.vfs” (dla «wirtualnego systemu plików»), a następnie utworzyć plik o nazwie 'main.tcl w tym katalogu:

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

Teraz, aby zrobić opakowanie: do tego potrzebny będzie plik sdx.kit. Zakładając go i tclkit (lub tclkit.exe) znajdują się w bieżącym katalogu roboczym, należy owinąć swoją aplikację tak:

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

Komenda okład wie kiedy dać mu argument „MojaApl”, że powinien zawinąć zawartość pliku myapp.vfs i że powinien on znaleźć plik o nazwie "main.tcl" w tym katalogu jako punkt wejścia programu. Możesz umieścić dowolne inne pliki w tym katalogu i wszystkie one będą opakowane, w tym pliki binarne specyficzne dla platformy, pliki obrazów i wszystko, co chcesz spakować.

Masz teraz plik wykonywalny, "myapp", czyli owiniętą aplikację.

Jeśli masz tclkity dla różnych architektur, możesz ich użyć (zastępując "basekit" w wierszu poleceń zestawem dla architektury docelowej), aby skompilować krzyżowo dla innych platform.

Więcej informacji można znaleźć How to create my first Starpack na Tcl'ers Wiki

+0

Dziękuję Bryan - Twoja odpowiedź wygląda świetnie. Powinienem zacząć już teraz. DFM – DFM

+0

Pytanie o sdx.kit i tclkit - Nie mogę uzyskać sdx i tclkit do qwrap. Po spędzeniu kilku godzin próbując uzyskać sdx i tcl do qwrap, ciągle otrzymywałam niepoprawną nazwę polecenia błędu. Wykonałem nawet instrukcje sieciowe i zmieniłem plik tclkit.exe na tclkitsh.exe. Myślę, że mam problem z plikiem sdx. Jak pobrać plik sdx? Wszystko, co mogę zrobić, to skopiować tekst do notatnika i zmienić rozszerzenie na .kit. Plik sdx nie jest pobierany jak normalny plik i próbowałem wielu wersji (?) Dzięki DFM – DFM

+0

Jakoś kopiowanie tekstu sdx.kit nie zadziała - jest to plik binarny. Może dostajesz kod źródłowy? Pobierz z tego linku: http://www.equi4.com/pub/sk/sdx.kit. –

Powiązane problemy