-1

我正在使用 tcl 8.6,其中包括 snit(活动状态 Tcl)。我的 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在正确的时间文件。这对于您的应用程序的源代码比您想要放入单个文件中的时间长的情况最有用。(把事情分开可能是一种很好的本能。)

于 2013-07-21T21:31:26.137 回答