ns2上的tcl脚本错误(没有这样的变量)

时间:2015-03-03 01:22:22

标签: tcl ns2

我尝试运行此处提供的示例代码:http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-ns2-rev1.0.tar.gz

根据自述文件,修补程序已成功应用,但在执行示例代码时,获得了以下错误:

ns: myTrace file3: can't read "dctcp_alpha_": no such variable
    while executing
"subst $[subst $var]"
    (procedure "_o154" line 5)
    (Object next line 5)
    invoked from within
"_o154 next dctcp_alpha_"
    ("eval" body line 1)
    invoked from within
"eval $self next $args"
    (procedure "_o154" line 18)
    (Agent set line 18)
    invoked from within
"$tcp($i) set dctcp_alpha_"
    (procedure "myTrace" line 8)
    invoked from within
"myTrace file3"

怎么能解决这个问题?

2 个答案:

答案 0 :(得分:0)

构建示例:tar xvf ns-allinone-2.35_gcc482.tar.gz

https://drive.google.com/file/d/0B7S255p3kFXNSGJCZ2YzUGJDVk0/view?usp=sharing

cd ns-allinone-2.35 / ns-2.35 /

patch -p1 --ignore-whitespace -i dctcp.patch

cd ../

./安装

cd ns-2.35 /

sudo make install

cp ns ns235-dctcp

sudo cp ns235-dctcp / usr / local / bin /

  • 运行模拟: ns235-dctcp simpleDumbbell.tcl

..创建文件mytracefile.tr 2.1MB,thrfile.tr 10.2kB。 (和queue.tr:0B)。

您的错误:您可能使用错误的可执行文件'ns'。

安全方式是使用新名称修补'ns'的DCTCP副本。

并且在系统路径中有一个位置,例如/ usr / local / bin / ns235-dctcp

    -

答案 1 :(得分:0)

我曾经遇到过与你提到的完全相同的问题:

  ns: myTrace file3: can't read "dctcp_alpha_": no such variable 
           while executing
  st $[subst $var]"
       (procedure "_o154" line 5)
       (Object next line 5)
       invoked from within
    ...

1.问题是运行补丁后需要编译

在运行以下补丁之后,

在他的回答中提及Knud Larsen

cd ns-allinone-2.35/ns-2.35/

patch -p1 --ignore-whitespace -i dctcp.patch

您需要转到/ns-allinone-2.35/文件夹,然后进行编译:

cd ../

./install

cd ns-2.35/

sudo make install
  1. Knud Larsen不同,我没有重命名另一个 ns 。我使用 ns 命令直接运行模拟:

    ns simpleDumbbell.tcl

  2. 它对我有用。

    希望这会有所帮助:)