已完成以下步骤 下载" ex-linkage.cc"文件,并将其保存在" ns-2"目录。 打开" Makefile",添加" ex-linkage.o"在目标文件列表的末尾。
使用" make"重新编译NS命令。下载" ex-linkage.tcl"档案
包含" MyAgent"测试OTcl命令。
使用命令" ns ex-linkage.tcl"运行OTcl脚本。
我收到以下错误
$ ./ns ex-linkage.tcl
invalid command name "Agent/MyAgentOtcl"
while executing
"Agent/MyAgentOtcl create o3 "
invoked from within
"catch "$className create $o $args" msg"
invoked from within
"if [catch "$className create $o $args" msg] {
if [string match "__FAILED_SHADOW_OBJECT" $msg] {
delete $o
return ""
}
global errorInfo
error "class $..."
(procedure "new" line 3)
invoked from within
"new Agent/MyAgentOtcl"
invoked from within
"set myagent [new Agent/MyAgentOtcl]"
(file "ex-linkage.tcl" line 8
答案 0 :(得分:1)
»»无效的命令名称“Agent / MyAgentOtcl”««:看起来您使用的是可执行文件'ns'而没有“链接”。
tar xvf ns-allinone-2.35_gcc482.tar.gz
https://drive.google.com/file/d/0B7S255p3kFXNSGJCZ2YzUGJDVk0/view?usp=sharing
cd ns-allinone-2.35/
patch -p0 < linkage_ns235.patch
https://drive.google.com/file/d/0B7S255p3kFXNYmZ0SWFQaUNhWTA/view?usp=sharing
./install
cd ns-2.35/
sudo make install
cp ns ns235-linkage
sudo cp ns235-linkage /usr/local/bin/
Simulation : ns235-linkage ex-linkage.tcl
.
warning: no class variable Agent/MyAgentOtcl::my_var2_otcl
.
Message From MyPrivFunc
my_var1 = 2
my_var2 = 3.140000
使用“ns235-linkage”命令确保使用正确的“ns”。 的 P.S。 :您不是使用'make'重新编译,而是使用'make clean&amp;&amp;使'。或者在顶级目录ns-allinone-2.35 /.
中运行'./install'答案 1 :(得分:0)
好的,Cygwin。 (为什么隐藏重要信息http://www.catb.org/~esr/faqs/smart-questions.html)。
补丁命令:安装'补丁',或安装'开发人员工具'(如果有)。
您可以使用ns-allinone-2.35_gcc482.tar.gz ,,附带的{ns-2.35 /},并使用其他安装的Cygwin {tcl8,tk8,otcl,tclcl}。
除此之外,补丁只包含两个文件ex-linkage。*,以及一行Makefile.in。补丁应该会让事情变得更容易。
使用:在保留ns-2.35 /的文件夹中复制“linkage_ns235.patch”,然后执行$ patch -p0 < linkage_ns235.patch
答案 2 :(得分:0)
好吧,你的cygwin没有工作补丁功能,似乎。
可能是您以前的设置没问题,您只需重新编译:
$ cd ns-2.35/ && make clean && make