2009-09-01 32 views
22

Sau khi chạy vào các vấn đề tương thích lớn với C#, ASP.NET, MS Access, Linux và Mono, tôi đã quyết định lập trình bằng ngôn ngữ đa nền tảng , mã nguồn mở và tương thích với các cơ sở dữ liệu nhúng cũng tương thích với nhiều nền tảng. Tôi đã thu hẹp lựa chọn của mình xuống TCL.Các bước đơn giản nhất để chuyển đổi TCL TK thành ứng dụng độc lập

Trước khi tôi bắt đầu một ứng dụng mẫu với TCL, tôi muốn xem việc tạo ứng dụng độc lập dễ dàng như thế nào. Tôi đã mua một cuốn sách mang tên "Lập trình thực tế trong TCL và TK", đã tải xuống TCLkit và FreeWrap, nhưng tôi gặp khó khăn khi tìm cách chuyển đổi TCL trong TK (Wish) thành ứng dụng độc lập.

Có ai có thể cung cấp các bước đơn giản để chuyển đổi tập lệnh TCL TK, chẳng hạn như nhãn có văn bản trên đó vào ứng dụng hoặc tài nguyên web có giải thích khá thẳng về phía trước không?

Trả lời

24

Để tạo gói hình sao bạn cần a) thời gian chạy là tclkit, b) sdx.kit. Bạn cũng cần một "cơ sở", tệp thực thi sẽ được gói bằng mã tcl của bạn. Trong ví dụ này, tôi giả sử bạn đang tạo một ứng dụng cho cùng một nền tảng mà bạn đang chạy. Bạn có thể tạo một basekit bằng cách đơn giản sao chép tclkit (hoặc tclkit.exe trên cửa sổ) để một tên khác, chẳng hạn như "basekit"

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

Bây giờ, tạo ra các mã mà bạn muốn đã được bao bọc thành một thực thi. Quy ước là tạo ra một thư mục với tên của ứng dụng của bạn và hậu tố ".vfs" (cho 'hệ thống tập tin ảo'), sau đó tạo một file có tên 'main.tcl' trong thư mục đó:

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

Bây giờ để làm các gói: cho điều này bạn sẽ cần các tập tin sdx.kit. Giả sử nó và tclkit (hoặc tclkit.exe) trong thư mục làm việc hiện tại của bạn, bạn quấn ứng dụng của bạn như thế này:

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

Lệnh bọc biết khi bạn cho nó lập luận "myapp" rằng nó nên quấn nội dung của myapp.vfs, và rằng nó nên tìm một tập tin có tên "main.tcl" trong thư mục đó là điểm vào chương trình. Bạn có thể đặt bất kỳ tệp nào khác mà bạn muốn trong thư mục đó và tất cả chúng sẽ được bao bọc, bao gồm tệp nhị phân cụ thể cho nền tảng, tệp hình ảnh và bất kỳ thứ gì khác bạn muốn đóng gói.

Bây giờ bạn có tệp thi hành, 'myapp', đó là ứng dụng được bao bọc.

Nếu bạn có tclkits cho các kiến ​​trúc khác nhau, bạn có thể sử dụng chúng (thay thế 'basekit' trên dòng lệnh bằng bộ kit cho kiến ​​trúc đích) để biên dịch chéo cho các nền tảng khác.

Để biết thêm thông tin, xem How to create my first Starpack trên Tcl'ers Wiki

+0

Cảm ơn bạn Bryan - Câu trả lời của bạn sẽ rất tuyệt. Tôi sẽ có thể bắt đầu ngay bây giờ. DFM – DFM

+0

Câu hỏi về sdx.kit và tclkit - Tôi dường như không nhận được sdx và tclkit cho qwrap. Sau khi chi tiêu một vài giờ cố gắng để có được sdx và tcl để qwrap, tôi tiếp tục nhận được tên lệnh không hợp lệ lỗi. Tôi thậm chí còn làm theo các hướng dẫn web và thay đổi tclkit.exe thành tclkitsh.exe. Tôi nghĩ rằng tôi đang gặp một vấn đề với các tập tin sdx. Làm cách nào để bạn tải xuống tệp sdx? Tất cả những gì tôi có thể làm là sao chép văn bản vào notepad và thay đổi phần mở rộng thành .kit. Tệp sdx không tải xuống như một tệp bình thường và tôi đã thử nhiều phiên bản (?) Cảm ơn DFM – DFM

+0

Bằng cách nào đó sao chép văn bản của sdx.kit sẽ không hoạt động - đó là tệp nhị phân. Có lẽ bạn đang nhận được mã nguồn? Tải xuống từ liên kết này: http://www.equi4.com/pub/sk/sdx.kit. –

Các vấn đề liên quan