链接c ++和ns2时出错?

时间:2015-11-13 04:30:02

标签: c++ ns2

已完成以下步骤  下载" 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

3 个答案:

答案 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