显示标签为“ns安装”的博文。显示所有博文
显示标签为“ns安装”的博文。显示所有博文

2010年1月21日星期四

慎用 "./configure"

运行 ./configure后,ns的makefile文件会恢复到默认状态(将你添加的makefile中的语句删除)。

如果你添加过新的协议,在makefile中做了修改,当你运行./configure后,重新make ns就会报错:

“This should work unless it involves constant data structures referencing symbols
from auto-imported DLLs.trace/cmu-trace.o:cmu-trace.cc:(.text$_ZN12hdr_smcr_pkt
6accessEPK6Packet[hdr_smcr_pkt::access(Packet const*)]+0x7): undefined reference
to `hdr_smcr_pkt::offset_'
trace/cmu-trace.o:cmu-trace.cc:(.text$_ZN9hdr_wcett6accessEPK6Packet[hdr_wcett::
access(Packet const*)]+0x7): undefined reference to `hdr_wcett::offset_'
Info: resolving __timezone by linking to __imp___timezone (auto-import)
collect2: ld returned 1 exit status
make: *** [ns] Error 1”

因为smcr和wcett是后来添加的路由协议,都在makefile中添加了相关语句;当运行./configure后相关语句被删除,新协议未被编译,从而找不到 “xx::offset”

因此,如果需要使用./configure,记得运行后新修改makefile;通常,重新编译时,不运行./configure应该也可以正确重新编译ns

2009年10月15日星期四

ns2 环境变量设置 (cygwin)

cygwin 安装后没有home目录,输入pwd找到默认home目录,将
.bash_profile
.bashrc
.inputrc
三个文件从/Cygwin/etc/skel拷入其中

在.bashrc 中添加如下内容
PATH中加入“$NS_HOME/nam-1.14”为的是调用nam,否则可能找不到,不过装完ns后的提示信息没有这一条,
要想使用nam还需要设置环境变量$DISPLAY,否则会报错说找不到$DISPLAY;不设置此变量可以通过启动X11窗口,然后运行ns程序,这样也可以成功运行nam,不过比较麻烦


#======================================================#
#add for ns 2.34 by Charlie Zheng on 15/10/2009

#NS_HOME--add for ns
export NS_HOME=/myns/ns-allinone-2.34

#nam-1.14 not required by information after ns 2.34 installation, to use nam
export PATH=$NS_HOME/nam-1.14:$NS_HOME/tcl8.4.18/unix:$NS_HOME/tk8.4.18/unix:$NS_HOME/bin:$PATH

export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.18/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/otcl-1.13:$NS_HOME/lib:$LD_LIBRARY_PATH
export TCL_LIBRARY=$NS_HOME/tcl8.4.18/library

#add for nam display
export DISPLAY=localhost:0.0
#=======================================================#

PS. 也可以不拷那三个文件,直接修改/Cygwin/etc 下的profile文件,不过该文件注释中提到,修改此文件可能影响系统软件