我是win8 64位,用的cygwin32位,NS2.35
1、下载cygwin的最新版http://cygwin.com/install.html(最好选用32位版本,64位会有很多问题,比如x-startup-scripts包找不到)
2、安装cygwin(关掉所有杀毒软件),下载源的选择,163会比较快,选择包时把左下角的勾去掉。右上角view切换到FULL,在搜索框中输入以下包,并安装:
gcc
gcc-g++
gcc4
gcc4-g++
gawk
gnuplot
gzip
make
patch
perl
tar
w32api
diffutils
X-startup-scripts
xorg-x11-base
xorg-x11-bin
xorg-x11-devel
xorg-x11-bin-dlls
xorg-x11-bin-lndir
xorg-x11-etc
xorg-x11-fenc
xorg-x11-fnts
xorg-x11-libs-data
xorg-x11-xwin
libxt-devel
libXmu-devel
3、下载NS2.35,http://www.isi.edu/nsnam/ns(这是目前的最新版本,之前试过在最新版的cygwin上安装ns2.27一直不成功,所以cygwin和ns的版本要匹配)
4、进入cygwin,输入pwd回车,显示了一个路径,在安装目录下找到这个路径所指的文件夹,把ns-allinone-2.35.tar.gz放进去。
5、在cygwin中把ns的压缩包解压,输入tar xfzv ns-allinone-2.35.tar.gz回车,这时候在压缩文件旁边出现一个解压后的文件夹,打开/ns-allinone-2.35/ns-2.35/linkstate/ls.h 修改第137行:
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
改为:
void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
保存。
/ns-allinone-2.27/ns-2.27/config.h 加#define CPP_NAMESPACE std
6、在cygwin中输入cd ns-allinone-2.35回车,输入./ configure ./install回车,之后等待一段时间。出现下图中状态安装完成。
7、打开第4步放ns-allinone-2.35.tar.gz的文件夹,找到.bashrc,打开,在最后加上
export NS_HOME="/home/【你的用户名】/ns-allinone-2.35"
export PATH="$NS_HOME/tcl8.5.10/unix:$NS_HOME/tk8.5.10/unix:$NS_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$NS_HOME/tcl8.5.10/unix:$NS_HOME/tk8.5.10/unix:$NS_HOME/otcl-1.14:$NS_HOME/lib:$LD_LIBRARY_PATH"
export TCL_LIBRARY="$NS_HOME/tcl8.5.10/library"
保存。重启电脑。注:记得把【你的用户名】替换成自己的用户名,比如我的是Joanna。
8、开始菜单打开cygwin-X/Xwin Server,输入cd ns-allinone-2.35/ns-2.35/tcl/ex 回车,ns nam-example.tcl回车,出现下图,表示ns和nam正常。有帖子说在cygwin中执行这些命令,而不是在Xwin Server中,但是我在cygwin中测试总是不成功,显示-bash:ns:command not found
如果Xwin Server中提示command not found则为环境变量没有配置成功,使用UltraEdit编辑保存.bashrc,重启Xwin Server即可。
注:验证安装的时候可以在Xwin Server中输入cd ns-allinone-2.35/ns-2.35 回车,./validate回车。要等很长时间,30min以上。