链接 c++ 和 ns2 时出错?
error while Linking c++ and ns2?
已完成以下步骤
下载"ex-linkage.cc"文件,保存在"ns-2"目录下。
打开 "Makefile",在目标文件列表末尾添加 "ex-linkage.o"。
使用"make"命令重新编译NS。下载 "ex-linkage.tcl" 文件
包含 "MyAgent" 测试 OTcl 命令。
运行 OTcl 脚本使用命令 "ns ex-linkage.tcl".
我遇到以下错误
$ ./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
»» 无效的命令名称 "Agent/MyAgentOtcl" «« :看起来您正在使用没有 "Linkage".
的可执行文件 '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 && make' 重新编译。或者通过运行 './install' 在顶级目录ns-allinone-2.35/.
好的,Cygwin。 (为什么隐藏重要信息http://www.catb.org/~esr/faqs/smart-questions.html)。
补丁命令:安装 'patch',或安装 'Developer tools'(如果可用)。
您可以使用 ns-allinone-2 附带的 {ns-2.35/}。35_gcc482.tar.gz , 并使用其他安装的 Cygwin {tcl8, tk8, otcl, tclcl}.
除此之外,补丁仅包含两个文件 ex-linkage.*,以及 Makefile.in 的一行。该补丁应该会让事情变得更容易。
使用:在保存 ns-2.35/ 的文件夹中复制 "linkage_ns235.patch",然后执行 $ patch -p0 < linkage_ns235.patch
好的,您的 cygwin 中似乎没有可用的补丁功能。
可能是您之前的设置没问题,您只需要重新编译即可:
$ cd ns-2.35/ && make clean && make
已完成以下步骤 下载"ex-linkage.cc"文件,保存在"ns-2"目录下。 打开 "Makefile",在目标文件列表末尾添加 "ex-linkage.o"。
使用"make"命令重新编译NS。下载 "ex-linkage.tcl" 文件
包含 "MyAgent" 测试 OTcl 命令。
运行 OTcl 脚本使用命令 "ns ex-linkage.tcl".
我遇到以下错误
$ ./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
»» 无效的命令名称 "Agent/MyAgentOtcl" «« :看起来您正在使用没有 "Linkage".
的可执行文件 '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 && make' 重新编译。或者通过运行 './install' 在顶级目录ns-allinone-2.35/.
好的,Cygwin。 (为什么隐藏重要信息http://www.catb.org/~esr/faqs/smart-questions.html)。
补丁命令:安装 'patch',或安装 'Developer tools'(如果可用)。
您可以使用 ns-allinone-2 附带的 {ns-2.35/}。35_gcc482.tar.gz , 并使用其他安装的 Cygwin {tcl8, tk8, otcl, tclcl}.
除此之外,补丁仅包含两个文件 ex-linkage.*,以及 Makefile.in 的一行。该补丁应该会让事情变得更容易。
使用:在保存 ns-2.35/ 的文件夹中复制 "linkage_ns235.patch",然后执行 $ patch -p0 < linkage_ns235.patch
好的,您的 cygwin 中似乎没有可用的补丁功能。
可能是您之前的设置没问题,您只需要重新编译即可:
$ cd ns-2.35/ && make clean && make