0

我正在使用这个名为 Simple Agent Pro 的软件,它主要使用 TCL 代码。我想知道任何熟悉 TCL 或 Sapro 的人都会好心地告诉我如何将模块导入到 Sapro 的 .tel 文件中。

当我尝试这个时:

package require tclOO.h

程序停止工作。任何帮助,将不胜感激。

4

2 回答 2

2

我根本不了解 Simple Agent Pro,但是如果您正在执行 TclOO 的“游击式安装”,那么您需要做一些事情:

  • 确保您使用的是 Tcl 8.5(查看package require Tcl返回的内容)。
    • 如果您使用的是 8.4(注意:本月 8.4 EOLed),TclOO将根本无法工作(并且不能向后移植)。
    • 如果您使用的是 8.6,它已经提供了 TclOO 包,您不必为这一切而烦恼。
  • 构建TclOO并将其安装到您喜欢的位置。
    • 需要 Tcl 的内部源文件;TclOO 明确地将其鼻子插入大多数代码不应该的地方。
    • 您可能不需要 8.5 的自定义版本;只有configure某处的 d 来源就可以了。(您可能需要稍微修改一下配置脚本。)
  • 将安装 TclOO的位置​​添加到 Tcl 8.5 程序内的搜索路径。

    lappend auto_path /the_dir/you_put/it_in
    

    如果您使用的是 Windows,那么无论如何,对这个路径使用正斜杠可能是最简单的(这是一个目录名称,在它到达操作系统之前总是受到高度保护,所以没关系)。

  • 现在您应该能够要求/使用该包

    package require TclOO
    
    oo::class create Foo {
        # etc.
    }
    

    请注意,案例以及您编写它的确切方式很重要。您获得的版本应该至少为 1.0(早期版本仅用于开发),它与 Tcl 8.6 中支持的 API 完全对应(模数一些由于其他原因需要 8.6 的东西,例如能够yield在一个方法中仅适用于 8.6,因为这yield是首次定义的地方)。

于 2013-06-26T18:41:28.100 回答
0

你大概是说

package require TclOO

案例和其他东西在那里很重要。

下次您还应该包括堆栈跟踪。如果程序停止工作,它应该将其显示为对话框或标准输出。

于 2013-06-26T17:32:47.897 回答