系统配置:
首先修改gcc版本,因为ns2.26的编译需要gcc4以下的版本
最后系统配置如下:
gcc 3.2.2 20030222
软件包:
ns-2.26
gnusim-ns2.26-v1.1
pdns-2.26_patches-v2
libsynk-current.tar
过程:
1.解压libsynk-current.tar到主目录,make
2.解压ns-2.26到安装目录
3.解压pdns-2.26_patches-v2到ns-2.66目录,执行patch -p3 < pdns-2.26_patches-v2打上PDNS补丁
4.进入ns-allinone-2.26目录,执行./install,生成ns,这一步主要是验证补丁是否成功
5.解压gnusim-ns2.26-v1.1到ns-2.26目录,这里要注意,不要覆盖TCL文件夹,而是将解压后的TCL文件中内容复制到ns2.26的TCL文件夹相应的位置上,执行./install.sh,遇到编译器报警:
Compiling common/tclAppInit.cc
/home/tyler/ns-allinone-2.26/lib/libtcl8.3.a(tclUnixPipe.o)(.text+0xe2): In function `TclpCreateTempFile':
: the use of `tmpnam' is dangerous, better use `mkstemp'
重新生成ns失败,但是没有关系,执行下一步
6.退回上级目录执行./install,产生错误如下
Compiling gen/ns_tcl.cc
/home/tyler_2.26/ns2/ns-allinone-2.26/lib/libtcl8.3.a(tclUnixPipe.o): In function `TclpCreateTempFile':
tclUnixPipe.c:(.text+0x122): warning: the use of `tmpnam' is dangerous, better use `mkstemp'
Compiling rti/rtisched.cc
rti/rtisched.cc:243: declaration of C function `int gethostname(const char*,
int)' conflicts with
/usr/include/unistd.h:845: previous declaration `int gethostname(char*,
unsigned int)' here
make: *** [rti/rtisched.o] 错误 1
Ns make failed!
See for problems
修改rti/rtisched.cc,使gethostname和函数库的声明相符合,再次运行./install,生成支持gnusim的ns
7.运行gnusim示例ns.tcl,smpboot.nc.tcl,成功
阅读(1789) | 评论(0) | 转发(0) |