Tcl snit类型的索引中缺少条目

Tcl snit类型的索引中缺少条目,tcl,Tcl,我正在使用TCL8.6,其中包括snit(活动状态tcl)。 我的snit类型保存在不同的文件中。使用auto_mkindex生成索引时,tcindex中缺少snit类型的相关内容 这意味着: 当我尝试创建snit类型的对象时 (例如 “MYTYPE创建对象名称…), 口译员写一条信息 无效的命令名…. 如果我手动完成索引 set auto_index(RPCSkeleton) [list source [file join $dir rpc2.tcl]] 一切正常 我有什么不对劲吗?这是sn

我正在使用TCL8.6,其中包括snit(活动状态tcl)。 我的snit类型保存在不同的文件中。使用
auto_mkindex
生成索引时,
tcindex
中缺少snit类型的相关内容

这意味着: 当我尝试创建snit类型的对象时 (例如 “
MYTYPE创建对象名称…
), 口译员写一条信息
无效的命令名….

如果我手动完成索引

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


我有什么不对劲吗?这是snit包(或
自动索引的附加模块)中的错误吗?

我不建议使用
自动索引
;在任何实际的应用程序中,它设置自动加载的代码所做的一切首先都是不明智的。最好是:

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

    或者

  • 直接
    source
    在正确的时间下载文件。对于源代码比单个文件长的应用程序,这是最有用的。(把事情分开是一种很好的本能。)


  • 我从未使用过自动索引,因此没有第一手知识。但是,首先要声明“注意,如果您想将auto_mkindex与itcl或任何其他声明特殊proc类构造的扩展一起使用,请确保首先执行扩展所需的包。”您这样做了吗?