-1

私は snit (Active State Tcl) を含む tcl 8.6 を使用しています。私の snit タイプは別のファイルに保持されています。auto_mkindexsnit タイプに関連するものを使用してインデックスを生成するときに、 tclIndex.

つまり、snit タイプ (たとえば ' MYTYPE create objectsName ...) のオブジェクトを作成しようとすると、インタープリターはメッセージを書き込みます。 invalid command name ....

tclIndex を手動で完了する場合

set auto_index(RPCSkeleton) [list source [file join $dir rpc2.tcl]]

すべてがうまくいきます!

何か間違っていますか?これは snit パッケージ (または のアドオン モジュールauto_mkindex) のバグですか?

4

1 に答える 1

0

使用することはまったくお勧めしませんauto_mkindex。自動的にロードされるコードをセットアップすることで行うすべてのことは、実際のアプリケーションではそもそも賢明ではありません。次のいずれかの方がはるかに優れています。

  1. あなたができるパッケージにコードを組み立てますpackage require。パッケージ定義ファイルにはpackage provide呼び出しが必要であり、(少なくとも最初は) を使用pkg_mkIndexしてパッケージ インデックス ファイルを作成する必要があります。パッケージのインデックス ファイルは単純なので、手動で管理できます。それらはパッケージ内のすべてのコマンドをリストするわけではなく、再配置可能であるため、メンテナンスは必要に応じて余分なファイルを追加し、時々バージョン番号を更新するだけです. (遅延パッケージローディングを使用しないでください!)

    または、…</p>

  2. source適切なタイミングでファイルを直接。これは、ソースが 1 つのファイルに収めるよりも長いアプリケーションを持っている場合に最も役立ちます。(物事を分割することは、非常に優れた本能です。)

于 2013-07-21T21:31:26.137 に答える