23

C#、ASP.NET、MS Access、Linux、および Mono との互換性に関する重大な問題に遭遇した後、私は、クロスプラットフォームでオープン ソースであり、多くのアプリケーションと互換性のある組み込みデータベースと互換性のある言語でプログラミングすることにしました。プラットフォーム。選択肢をTCLに絞り込みました。

TCL を使用してサンプル アプリケーションを作成する前に、スタンドアロン アプリケーションを簡単に作成できることを知りたいと思いました。「TCL と TK での実用的なプログラミング」という本を購入し、TCLkit と FreeWrap をダウンロードしましたが、TK (Wish) で TCL をスタンドアロン アプリケーションに変換する方法論的な方法を見つけるのに苦労しています。

テキスト付きのラベルなどの TCL TK スクリプトを、アプリケーションまたは非常に単純な説明を持つ Web リソースに変換するための簡単な手順を提供できる人はいますか?

4

2 に答える 2

24

starpack をビルドするには、a) tclkitランタイム、b) sdx.kitが必要です。また、tcl コードでラップされる実行可能ファイルである「basekit」も必要です。この例では、実行しているのと同じプラットフォーム用のアプリケーションを作成していると仮定します。tclkit (または Windows では tclkit.exe) を「basekit」などの別の名前にコピーするだけで、basekit を作成できます。

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

次に、実行可能ファイルにラップするコードを作成します。規則では、アプリの名前と接尾辞「.vfs」(「仮想ファイル システム」) を使用してディレクトリを作成し、そのディレクトリに「main.tcl」という名前のファイルを作成します。

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

ラッピングを行うには、sdx.kit ファイルが必要です。それと tclkit (または tclkit.exe) が現在の作業ディレクトリにあると仮定すると、次のようにアプリをラップします。

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

wrap コマンドは、引数「myapp」を指定すると、myapp.vfs の内容をラップする必要があること、およびそのディレクトリでプログラムのエントリ ポイントとなる「main.tcl」という名前のファイルを探す必要があることを認識します。そのディレクトリに必要な他のファイルを配置すると、プラットフォーム固有のバイナリ ファイル、イメージ ファイル、およびバンドルしたいその他のファイルを含め、すべてラップされます。

これで、ラップされたアプリケーションである実行可能ファイル「myapp」が作成されました。

異なるアーキテクチャ用の tclkit がある場合は、それらを使用して (コマンド ラインの「basekit」をターゲット アーキテクチャ用のキットに置き換えます)、他のプラットフォーム用にクロスコンパイルできます。

詳細については、Tcl'ers Wikiで初めての Starpack を作成する方法を参照してください。

于 2009-09-01T14:53:32.443 に答える
2

kitgen ビルド システムも最初は役に立ちます。

于 2009-09-01T15:40:07.647 に答える