【问题标题】:I am having difficulties run Tcl script我在运行 Tcl 脚本时遇到了困难
【发布时间】:2012-07-15 01:01:47
【问题描述】:

我已经开始学习 TCL 脚本语言了。我使用的是 ActivateState Tcl Devkit 5.3.0。 当我创建新模拟器时,它会出现这样的错误:

无效的命令名称“新” 在执行时 “新模拟器” 从内部调用 “设置 ns [新模拟器]”

【问题讨论】:

    标签: tcl


    【解决方案1】:

    Tcl 中没有命令new。

    所以它是由一些包或一些修改过的shell提供的。

    假设您使用 ns2 或类似的东西,您需要使用适当的 shell 或通过package require 将包加载到普通的 tclsh shell 中。

    【讨论】:

    • 更具体地说,new 对 Tcl 没有任何特殊意义(尽管在 8.6 中它是一个类方法名)。我不确定什么对象系统定义了 new 命令;它不是 TclOO、Itcl、XOTcl 或 Snit 的一部分。
    • NS2 网络模拟器使用的 OTcl (otcl-tclcl.sourceforge.net/otcl) 有一个 new 命令。
    • 在某些例子中,他们总是使用“new”。
    • 如何验证软件包是否正确包含在内,我在 ./profile 文件“LD_LIBRARY_PATH="/home/karl/ns-allinone-2.35/otcl-1.14”中设置了以下行。仍然收到错误。
    • Tcl 不使用 LD_LIBRARY_PATH(好吧,仅用于加载 .so,在 ld 动态链接器的帮助下,这就是它称为 LD_LIBRARY_PATH 的原因)。通常 Tcl 查看 ::auto_path 全局变量的值和包的直接子目录(例如 pkgIndex.tcl 文件)。如果你在包中没有看到pkgIndex.tcl 文件,你要么需要创建一个文件,要么使用load 和source 命令直接加载库。
    【解决方案2】:

    如果你使用的是 ns(几个小时前我遇到了完全相同的错误,所以我猜是的 ^^)你可以试试这个命令:

    ns your_tcl_script.tcl
    

    如果 ns 安装正确,它将为您建立链接

    祝你有美好的一天

    【讨论】:

      猜你喜欢
      • 2012-10-31
      • 1970-01-01
      • 2021-11-05
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多