Windows下NS2的详细安装过程Word文档格式.docx

上传人:b****5 文档编号:21297685 上传时间:2023-01-29 格式:DOCX 页数:26 大小:180.90KB
下载 相关 举报
Windows下NS2的详细安装过程Word文档格式.docx_第1页
第1页 / 共26页
Windows下NS2的详细安装过程Word文档格式.docx_第2页
第2页 / 共26页
Windows下NS2的详细安装过程Word文档格式.docx_第3页
第3页 / 共26页
Windows下NS2的详细安装过程Word文档格式.docx_第4页
第4页 / 共26页
Windows下NS2的详细安装过程Word文档格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

Windows下NS2的详细安装过程Word文档格式.docx

《Windows下NS2的详细安装过程Word文档格式.docx》由会员分享,可在线阅读,更多相关《Windows下NS2的详细安装过程Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。

Windows下NS2的详细安装过程Word文档格式.docx

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

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

开始下载文件,准备安装。

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

如果是代理服务器,可能还会更慢,推荐早上开机安装,然后去上自习,估计中午就能下完了 

 

:

-P

下载完成后,系统会自动开始安装

安装过程还是比较慢的,耐心等待就是了

安装完成

让人高兴的提示

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

接下来就是安装ns2了

http:

//www.isi.edu/nsnam/dist/ns-allinone-2.28.tar.gz

下载ns-allinone安装包。

当然也可以选择下载单独的包,然后一个一个安装,不过真的不推荐,因为太麻烦了

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

c:

\cygwin\home\hct。

启动cygwin,

cd/home/hct/ns-allinone-2.28

./install

安装过程就开始了。

由于目录不一样,上面的命令可能不太一样。

安装过程是很漫长的,因为我们下载的是源文件,机器还得先编译,等吧……

安装完后会出现这个提示:

这时还需要修改路径信息,把可执行文件的路径加到PATH环境变量中

打开c:

\cygwin\home\hct\.bashrc(当然,根据安装路径不同,这个文件所处的位置也不同),在文件末尾加入这些信息:

exportNS_HOME=/home/hct/ns-allinone-2.28

exportPATH=$NS_HOME/nam-1.11:

$NS_HOME/tcl8.4.5/unix:

$NS_HOME/tk8.4.5/unix:

$NS_HOME/bin:

$PATH

exportLD_LIBRARY_PATH=$NS_HOME/tcl8.4.5/unix:

$NS_HOME/otcl-1.9:

$NS_HOME/lib:

$LD_LIBRARY_PATH

exportTCL_LIBRARY=$NS_HOME/tcl8.4.5/library

.bashrc文件可以用记事本打开,不过最好用UE,因为它是unix格式的文本

加入后的文件像这样:

现在我们的工作就基本完成了。

保存.bashrc,打开cygwin,运行startxwin.bat

这时应该出现这样的窗口:

运行

cd/home/hct/ns-allinone-2.28/ns-2.28/ns-tutorial/examples

nsexample2.tcl

应该会出现这样的窗口:

这就表示ns2安装圆满完成了!

Problems&

Solutions

P:

运行startxwin.bat时提示“NoSuchFileorDirectory”

S:

可能是没有安装X-Startup-Scripts,重新运行setup.exe,然后选择安装就行了

也可能是环境变量没有设置好,按上面的设置再检查一遍,注意要把hct改成你相应的名字

另外,应该运行startxwin.bat,不能只打startxwin

运行nsexamples2.tcl时提示"

nosuchfileordirectory"

如果是找不到examples2.tcl那就是你打cd/home/hct/ns-allinone-2.28/ns-2.28/ns-tutorial/examples的时候出了错

如果是找不到ns,那就是环境变量没设置好

运行nsexamples2.tcl时提示“nam:

nosuchfileordirectory”

看看你的/home/hct/ns-allinone-2.28/nam-1.11目录下有没有nam.exe文件,有的话就是你的环境变量设置错了,注意要把nam-1.11这个目录加到PATH中

如果没有nam.exe,那就是编译nam时出错了。

运行gcc-dumpversion看看你的gcc版本,如果是3.4.x,那就好办了。

找到nam-1.11/agent.h,把它的第73行中的NULL改成0,然后回到nam-1.11目录,运行./configure然后运行make,等运行完毕,再试试nsexample2.tcl就应该没问题了

如果运行./configure结束后,最后一行提示"

can'

tfindXinclude"

,运行make后报错

“xwd.c:

87:

29:

X11/Xmu/WinUtil.h:

Nosuchfileordirectory

make:

***[xwd.o]Error1”

那就只好去http:

//www.isi.edu/nsnam/dist/binary/下一个nam-1.0alla-win32.exe,然后把文件名改为nam.exe,复制到C:

\cygwin\home\hct\ns-allinone-2.28\bin下了。

如果gcc版本不是3.4.x,那就不知道是什么问题了,不过可以肯定是编译出了错,所以换个nam版本试试吧

References:

//140.116.72.80/~smallko/ns2/setup.htm

概述

  GCC(GNUCompilerCollection,GNU编译器套装),是一套由GNU开发的编程语言编译器。

它是一套

GNU编译器套装

以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部分,亦是自由的类Unix及苹果电脑MacOSX操作系统的标准编译器。

  GCC原名为GNUC语言编译器,因为它原本只能处理C语言。

GCC很快地扩展,变得可处理C++。

之后也变得可处理Fortran、Pascal、Objective-C、Java,以及Ada与其他语言。

顺义

  GCC俱乐部

结构

  GCC的外部接口长得像一个标准的Unix编译器。

使用者在命令列下键入gcc之程序名,以及一些命令参数,以便决定每个输入档案使用的个别语言编译器,并为输出程序码使用适合此硬件平台的组合语言编译器,并且选择性地执行连结器以制造可执行的程序。

  每个语言编译器都是独立程序,此程序可处理输入的原始码,并输出组合语言码。

全部的语言编译器都拥有共通的中介架构:

一个前端解析符合此语言的原始码,并产生一抽象语法树,以及一翻译此语法树成为GCC的暂存器转换语言〈RTL〉的后端。

编译器最佳化与静态程序码解析技术(例如FORTIFY_SOURCE,一个试图发现缓冲区溢位〈bufferoverflow〉的编译器)在此阶段应用于程序码上。

最后,适用于此硬件架构的组合语言程序码以JackDavidson与ChrisFraser发明的算法产出。

  几乎全部的GCC都由C写成,除了Ada前端大部分以Ada写成。

  前端接口

  前端的功能在于产生一个可让后端处理之语法树。

此语法解析器是手写之递回语法解析器。

  直到最近,程序的语法树结构尚无法与欲产出的处理器架构脱钩。

而语法树的规则有时在不同的语言前端也不一样,有些前端会提供它们特别的语法树规则。

  在2005年,两种与语言脱钩的新型态语法树纳入GCC中。

它们称为GENERIC与GIMPLE。

语法解析变成产生与语言相关的暂时语法树,再将它们转成GENERIC。

之后再使用"

gimplifier"

技术降低GENERIC的复杂结构,成为一较简单的静态唯一形式(StaticSingleAssignmentform,SSA)基础的GIMPLE形式。

此形式是一个与语言和处理器架构脱钩的全域最佳化通用语言,适用于大多数的现代编程语言。

  中介接口

  一般编译器作者会将语法树的最佳化放在前端,但其实此步骤并不看语言的种类而有不同,且不需要用到语法解析器。

因此GCC作者们将此步骤归入通称为中介阶段的部分里。

此类的最佳化包括消解死码、消解重复运算与全域数值重编码等。

许多最佳化技巧也正在实作中。

  后端接口

  GCC后端的行为因不同的前处理器宏和特定架构的功能而不同,例如不同的字符尺寸、呼叫方式与大小尾序等。

后端接口的前半部利用这些讯息决定其RTL的生成形式,因此虽然GCC的RTL理论上不受处理器影响,但在此阶段其抽象指令已被转换成目标架构的格式。

  GCC的最佳化技巧依其释出版本而有很大不同,但都包含了标准的最佳化算法,例如循环最佳化、执行绪跳跃、共通程序子句消减、指令排程等等。

而RTL的最佳化由于可用的情形较少,且缺乏较高阶的资讯,因此比较起近来增加的GIMPLE语法树形式[2],便显得比较不重要。

  后端经由一重读取步骤后,利用描述目标处理器的指令集时所取得的资讯,将抽象暂存器替换成处理器的真实暂存器。

此阶段非常复杂,因为它必须关照所有GCC可移植平台的处理器指令集的规格与技术细节。

  后端的最后步骤相当公式化,仅仅将前一阶段得到的组合语言码藉由简单的副函式转换其暂存器与内存位置成相对应的机械码。

基本规则

  gcc所遵循的部分约定规则:

  .c为后缀的文件,C语言源代码文件;

  .a为后缀的文件,是由目标文件构成的档案库文件;

  .C,.cc或.cxx为后缀的文件,是C++源代码文件;

  .h为后缀的文件,是程序所包含的头文件;

  .i为后缀的文件,是已经预处理过的C源代码文件;

  .ii为后缀的文件,是已经预处理过的C++源代码文件;

  .m为后缀的文件,是Objective-C源代码文件;

  .o为后缀的文件,是编译后的目标文件;

  .s为后缀的文件,是汇编语言源代码文件;

  .S为后缀的文件,是经过预编译的汇编语言源代码文件。

执行过程

  虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。

  命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。

接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。

汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。

当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。

在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。

基本用法

  在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。

GCC编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。

  GCC最基本的用法是∶gcc[options][filenames]

  其中options就是编译器所需要的参数,filenames给出相关的文件名称。

  -c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。

  -ooutput_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。

如果不给出这个选项,gcc就给出预设的可执行文件a.out。

  -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。

  -O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。

  -O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。

  -Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。

C程序中的头文件包含两种情况∶

  A)#include<

myinc.h>

  B)#include“myinc.h”

  其中,A类使用尖括号(<

>

),B类使用双引号(“”)。

对于A类,预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而B类,预处理程序在目标文件的文件夹内搜索相应文件。

GCC执行过程示例

  示例代码a.c:

  #include<

stdio.h>

  intmain()

  {

  printf("

hello\n"

);

  }

  预编译过程:

  这个过程处理宏定义和include,并做语法检查。

  可以看到预编译后,代码从5行扩展到了910行。

  gcc-Ea.c-oa.i

  cata.c|wc-l

  5

  cata.i|wc-l

  910

  编译过程:

  这个阶段,生成汇编代码。

  gcc-Sa.i-oa.s

  cata.s|wc-l

  59

  汇编过程:

  这个阶段,生成目标代码。

  此过程生成ELF格式的目标代码。

  gcc-ca.s-oa.o

  filea.o

  a.o:

ELF64-bitLSBrelocatable,AMDx86-64,version1(SYSV),notstripped

  链接过程:

  链接过程。

生成可执行代码。

链接分为两种,一种是静态链接,另外一种是动态链接。

使用静态链接的好处是,依赖的动态链接库较少,对动态链接库的版本不会很敏感,具有较好的兼容性;

缺点是生成的程序比较大。

使用动态链接的好处是,生成的程序比较小,占用较少的内存。

  gcca.o-oa

  程序运行:

  ./a

  hello

GCC编译简单例子

  编写如下代码:

hello,world!

\n"

  执行情况如下:

  gcc-Ehello.c-ohello.i

  gcc-Shello.i-ohello.s

  gcc-chello.s-ohello.o

  gcchello.c-ohello

  ./hello

  hello,world!

目前支持的语言

  以2006年5月24日释出的4.1.1版为准,本编译器版本可处理下列语言:

  Ada〈GNAT〉

  C〈GCC〉

  C++(G++)

  Fortran〈Fortran77:

G77,Fortran90:

GFORTRAN〉

  Java〈编译器:

GCJ;

解释器:

GIJ〉

  Objective-C〈GOBJC〉

  Objective-C++

  先前版本纳入的CHILL前端由于缺乏维护而被废弃。

  Fortran前端在4.0版之前是G77,此前端仅支援Fortran77。

在本版本中,G77被废弃而采用更新的GFortran,因为此前端支援Fortran95。

  下列前端依然存在:

  Modula-2

  Modula-3

  Pascal

  PL/I

  D语言

  Mercury

  VHDL

支援的处理器架构

  GCC目前支援下列处理器架构(以4.1版为准):

  Alpha

  ARM

  AtmelAVR

  Blackfin

  H8/300

  IA-32〈x86〉与x86-64

  IA-64例如:

Itanium

  MorphoSys家族

  Motorola68000

  Motorola88000

  MIPS

  PA-RISC

  PDP-11

  PowerPC

  System/370,System/390

  SuperH

  HC12

  SPARC

  VAX

  RenesasR8C/M16C/M32C家族

  较不知名的处理器架构也在官方释出版本中支援:

  A29K

  ARC

  C4x

  CRIS

  D30V

  DSP16xx

  FR-30

  FR-V

  Inteli960

  IP2000

  M32R

  68HC11

  MCORE

  MMIX

  MN10200

  MN10300

  NS32K

  ROMP

  Stormy16

  V850

  Xtensa

  由FSF个别维护的GCC处理器架构:

  D10V

  MicroBlaze

  PDP-10

  MSP430

  Z8000

  当GCC需要移植到一个新平台上,通常使用此平台固有的语言来撰写其初始阶段。

为GCC程序除错

  为GCC除错的首选工具当然是GNU除错器。

其他特殊用途的除错工具是Valgrind,用以发现内存漏失(Memoryleak)。

而GNU测量器(gprof)可以得知程序中某些函式花费多少时间,以及其呼叫频率;

此功能需要使用者在编译时选定测量〈profiling〉选项。

GCC编译器的使用

  首先检查是否在你的机器上安装了GCC,使用命令:

  可用rpm-qgcc 检查。

  如果没有安装,请依序检查并安装下面各RPM

  libbinutils

  binutils

  make

  glibc-devel

  gcc-cpp

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1