Ns2+Cygwin Terminal在windows系统安装

2024-02-19 19:08

本文主要是介绍Ns2+Cygwin Terminal在windows系统安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Ns2+Cygwin Terminal在windows系统安装

NS-2是Open Source的,最早的版本是在 linux/unix下运行的,所以如果你想在windows系统中安装NS2,一种方法可以安装虚拟机,然后安装基于linux/unix的系统,然后安装ns2。

当然也可以在windows机子中安装Cygwin Terminal, Cygwin是一个在windows平台上运行的unix模拟环境.

1.  首先去http://www.cygwin.com/setup.exe下载setup.exe,运行,如图:

图1 下载的setup

图2.运行steup1

图3.运行steup2

说明:我采用的是从网上直接下载,你也可以先下载安装包,然后选择第2个install form local directory。

 

图4.运行steup3

图5.选择将下载的文件的存放目录

 

图6.选择连接方式

 

 

图7.选择下载网址

图8.选择安装包

 

选择要安装的软件包。这里我只列出ns2需要的包,其中不包括安装程序默认安装的包:

gcc

gcc-g++

gnuplot

make

patch

perl

tar

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

注意:

按以上安装成功后运行样例程序可能会发现ns模拟没有问题就是不能自动调用nam。

显示错误为:

ns: finish: couldn't execute "nam": no such file or directory

while executing

"exec nam out.nam &"

(procedure "finish" line 7)

invoked from within

"finish"

解决方案:

先手动编译nam生成可执行文件nam

进入NS_HOME/nam-1.12(NS_HOME为安装ns2的路径)输入命令:make

结果显示错误:

xwd.c:87:29: 错误: X11/Xmu/WinUtil.h:No such file or directory

make: *** [xwd.o] 错误 1

问题是xmu没有安装,于是只好再装xmu,

命令为:

sudo apt-get install libxmu-dev

 

所以在此处建议直接把xmu勾选上。

点右上角的view,使它旁边的状态显示为Full,你就能看到按字母顺序排序的package列表,在这些包前点鼠标,使它们处于非“Skip”的状态

开始下载文件,准备安装。下载过程会比较慢,因为总文件有60多M,且分成很多小文件。

下载完成后,系统会自动开始安装,安装过程还是比较慢的,耐心等待就是了。

安装完成

到这里,cygwin安装完成,这时桌面上应该出现了一个cygwin的图标,点击运行,就能看到cygwin的界面。

图9.启动图标

 

 

接下来就是安装ns2了

先去

http://sourceforge.net/project/mirror_picker.php?height=350&width=300&group_id=149743&use_mirror=jaist&filename=ns-allinone-2.33.tar.gz

 

图10.下载的ns2

 

下载完后,用winrar(我确定winzip能不能解压tar格式的文件,谁试试,告诉我一声)把里面的文件都解压到 cygwin安装目录下的 home目录的子目录下,比如在我这里就是 c:\cygwin\home\sun。

 

启动cygwin,

cd /home/sun/ns-allinone-2.30

./install 下图最后一个命令

安装过程就开始了。由于目录不一样,上面的命令可能不太一样。

 

图11.解压ns2

图12.安装ns2

 

 

 

 

图13.键入startxwin

注意:通过其它文档说可以运行startxwin.bat,但本人在安装目录中并未找到这个批处理文件,但运行startxin.exe确是可以的。你不妨试试。

图14.运行startxwin

 

 

下面介绍一下我遇到的错误:

1. 安装Cygwin后,一打开窗口,bashell一调出,就会弹出一个错误:

bush:$'/r': command not found

打开x窗口,startx,错误同样!

主要是cygwin的工作目录下的几个配置文件,都是dos格式的,尤其是末尾的回车换行,

而应该是unix的,只要个回车("/n")。

下载一个dos2unix命令包,解压安装在工作目录下,运行如下命令:

dos2unix [文件名]

再重新打开cygwin命令窗口,bush错误消失!

而且,以后,你每次变化这几个文件,加入新用户配置信息的时候,都要转换一下,dos2unix

图14.dos2unix

有读者会问配置信息,什么配置信息啊。因为要使cygwin知道你采用的命令,就要配置这些命令的环境变量。记住你一用记事本打.bashrc就已经改变了这文本文件的格式。

你的版本是2.30的,在你的.bashrc文件加入如下代码即可:

export NS_HOME=sun/ns-allinone-2.30 其中sun是你机器名

export PATH=$NS_HOME/tcl8.4.13/unix:$NS_HOME/tk8.4.13/unix:$NS_HOME/bin:$PATH

export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.13/unix:$NS_HOME/tk8.4.13/unix:$NS_HOME/otcl-1.12:$NS_HOME/lib:$LD_LIBRARY_PATH

export TCL_LIBRARY=$NS_HOME/tcl8.4.13/library

在运行startxwin.bat之前,输入source  .bashrc试试

2.如果你想观看图形演示效果,则必须保证nam.exe文件的存在。可以在home/sun/ns-allinone-2.28/nam-1.11寻找。如果有,但ns example2.tcl无法出现,则可能是环境配置有问题,或者是nam.exe不存在,或者是报如下错误[code omitted because of length]

: no event type or button # or keysym

while executing

"bind Listbox <MouseWheel> {

%W yview scroll [expr {- (%D / 120) * 4}] units

}"

对于第一种可以重新配置环境变量,仔细检查,还要记得转换格式。

对于第二种,按如下步骤解决:

需要用make命令生成nam。步骤:首先进入目录home/sun/ns-allinone-2.28/nam-1.11,然后运行命令( ./configure && make && make install )后会在 home/sun/ns-allinone-2.28/nam-1.11目录下生成一个nam.exe文件,把nam.exe文件拷贝到 home/sun/ns-allinone-2.28/bin 目录下。注:上述命令执行中的错误不影响nam.exe文件的生成结果,可以不理会。在NS主窗口home/sun/ns-allinone-2.28/ns-2.28目录下输入startxwin回车后生成一个小窗口。(在小窗口中输入命令(cd ns-allinone-2.30/ns-2.30/ns-tutorial/examples)进入相应目录。运行命令(ns example2.tcl)会进行模拟生成一个*.nam文件,nam根据这个文件显示动画模拟。

第三种,分析如下:

这个是由于nam调用的tk组件和xproto-7.0.13不兼容导致的(xproto-7.0.13 新添加了 GenericEvent)。 解决方法:

到这里下载补丁http://bugs.gentoo.org/show_bug.cgi?id=225999

或者新建一个记事本复制一下内容到里面,保存,命名为“tk-8.4.18-tkBind.patch”(将.txt后缀名改为.patch)

--- tk8.4.18-orig/generic/tkBind.c 2006-07-21 08:26:54.000000000 +0200

+++ tk8.4.18/generic/tkBind.c 2008-07-05 12:17:10.000000000 +0200

@@ -586,6 +586,9 @@

COLORMAP,

0,

0,

+#ifdef GenericEvent

+ 0,

+#endif

VIRTUAL,

ACTIVATE,

ACTIVATE,)

 

然后在ns-allinone-2.33下运行patch -p0 < tk-8.4.18-tkBind.patch

会出现:

直接把补丁放在ns-allinone-2.30下运行就行~tk8.4.18/generic/tkBind.c

can't find file to patch at input line 3

Perhaps you used the wrong -p or --strip option?

The text leading up to this was:

--------------------------

|--- tk8.4.18-orig/generic/tkBind.c 2006-07-21 08:26:54.000000000 +0200

|+++ tk8.4.18/generic/tkBind.c 2008-07-05 12:17:10.000000000 +0200

--------------------------

File to patch:

然后去查找需要打补丁的文件tkBind.c,它在NS2.30中的位置是~/ns-allinone-2.30/tk8.4.13/generic

在“File to patch: ”后填写好路径名和文件名,打上补丁。

然后重装ns-2.33。

最后,需要将ns-2.33中的“ns”和nam-1.12中的“nam”拷贝到/usr/local/bin下面。

这样就能正常调用ns和nam了。

 

我采用的是另一种方法:

这样的错误(由于nam调用的tk组件和xproto-7.0.13 不兼容导致的(xproto-7.0.13 新添加了 GenericEvent)),于是在tk-8.4.14/generic/tkBind.c的第588行添加:

#ifdef GenericEvent

/* GenericEvent */ 0,

#endif

重新编译安装ns2(这步是一定要的)然后再“nam”成功跳出对话框。

 

 

3如果安装ns2时出现如下错误:

eneric/tk3d.c:242: error: ‘None’ undeclared (first use in this function) /media/Software/Quyettong/linux/soflware/ns2/ns-allinone-2.34/tk8.4.18/unix/../generic/tk3d.c:243: error: ‘ TkBorder’ has no member named ‘bgGC’ /media/Software/Quyettong/linux/soflware/ns2/ns-allinone-2.34/tk8.4.18/unix/../generic/tk3d.c:244: error: ‘ TkBorder’ has no member named ‘darkGC’ /media/Software/Quyettong/linux/soflware/ns2/ns-allinone-2.34/tk8.4.18/unix/../generic/tk3d.c:245: error: ‘ TkBorder’ has no member named ‘lightGC’ /media/Software/Quyettong/linux/soflware/ns2/ns-allinone-2.34/tk8.4.18/unix/../generic/tk3d.c:246: error: ‘ TkBorder’ has no member named ‘hashPtr’ ........................................... ........................................... eneric/tk3d.c:1400: error: ‘TkBorder’ has no member named ‘nextPtr’ /media/Software/Quyettong/linux/soflware/ns2/ns-allinone-2.34/tk8.4.18/unix/../generic/tk3d.c:1403: error: ‘TkBorder’ has no member named ‘resourceRefCount’ /media/Software/Quyettong/linux/soflware/ns2/ns-allinone-2.34/tk8.4.18/unix/../generic/tk3d.c:1405: error: ‘TkBorder’ has no member named ‘objRefCount’ make: *** [tk3d.o] Error 1 以上类似的错误,是由于系统重装缺少必要的库文件,于是sudo apt-get install libx11-dev , libxmu-dev , libxmu-headers , libxt-dev , libtool ,装好以上的那些包,一切正常!

4安装成功后运行样例程序发现ns模拟没有问题就是不能自动调用nam!

显示错误为:

ns: finish: couldn't execute "nam": no such file or directory

while executing

"exec nam out.nam &"

(procedure "finish" line 7)

invoked from within

"finish"

解决方案:

先手动编译nam生成可执行文件nam

进入NS_HOME/nam-1.12(NS_HOME为安装ns2的路径)输入命令:make

结果显示错误:

xwd.c:87:29: 错误: X11/Xmu/WinUtil.h:No such file or directory

make: *** [xwd.o] 错误 1

问题是xmu没有安装,于是只好再装xmu,

命令为:

sudo apt-get install libxmu-dev

然后在输入make进行编译,完成后在NS_HOME/nam-1.12/中可以发现可执行文件nam将其复制到 NS_HOME/bin/目录下,这样由于$PATH环境变量中有NS_HOME/bin项,nam就可以直接运行了。这也是上面我提醒勾选libmu-dev的原因。

至此,终于大功告成了。

测试如下:

这篇关于Ns2+Cygwin Terminal在windows系统安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/725653

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式