tclIndex中缺少snit类型的条目

时间:2013-07-21 15:52:27

标签: tcl

我正在使用包含snit(活动状态Tcl)的tcl 8.6。 我的snit类型保存在不同的文件中。使用auto_mkindex生成索引时,tclIndex中缺少snit类型的相关内容。

这意味着: 当我尝试创建一个snit类型的对象 (例如     “MYTYPE create objectsName ...), 解释器写一条消息         invalid command name ....

如果我手动完成tclIndex

set auto_index(RPCSkeleton) [list source [file join $dir rpc2.tcl]]
一切都运行良好!

我弄错了吗?这是snit包中的错误(或auto_mkindex的附加模块中的错误?)

1 个答案:

答案 0 :(得分:0)

我根本不建议使用auto_mkindex;在任何实际应用程序中,它首先设置自动加载的代码都是不明智的。它要好得多:

  1. 将代码汇编到一个可以package require的包中。包定义文件将需要package provide调用,然后您将(至少第一次)使用pkg_mkIndex来创建包索引文件。包索引文件很简单,您可以手动维护它们;它们不会列出包中的每个命令,并且可以重定位,因此维护只是在必要时添加额外的文件,偶尔更新版本号。 (使用延迟包加载!)

    或者,......

  2. 在合适的时间直接source个文件。这对于您的源应用程序源于您希望放在单个文件中的应用程序的位置非常有用。 (分解事物可能是一种非常好的直觉。)