【NS2】使用SourceInsight阅读NS源代码全攻略(转载)
NS的源码底层是C++,采用了C++/Tcl分裂对象模型,架构完善,堪称OOP编程的典范。但是NS源码体系庞大,源文件有2千多个,阅读起来不是特别方便,我推荐使用SourceInsight3.5。具体的配置如下:
1. 下载安装SourceInsight,在这里我就不提供了,大家自己去搜吧。SourceInsight的正版单机价格是2500元人民币,呵呵,小小3M多的程序有这么大价值,其功能可见一斑。
2. 安装后,我们先进行一些配置,以便使得SourceInsight能够正确得识别NS的源文件类型,也就是添加.cc与.tcl文件类型到SourceInsight中,否则要么不能完全导入NS的源文件(只能加入默认识别的.c和.h文件)。
2.1 添加*.cc文件类型:打开options->preference,选择languages选项卡,这里能看到列出的已知语言种类,选中C++ Language,然后单击靠近右下方的“Doc Types...”按钮,在弹出窗口中的“File Filter”一栏中加入文件类型“*.cc”,注意与前面最后一个用分号隔开。
2.2 添加*.tcl文件类型:SourceInsight中没有TCL语言类型,曾经有人说把TCL语言用Perl来解释,这么做虽然有点用,因为这两种脚本语言的关键字类似,但毕竟不伦不类的,而且也无法正确解析。所以正确的做法是使SourceInsight认识TCL脚本语言。同上打开options->preference,选择languages选项卡,这里发现列表中没有TCL语言,于是从SourceInsight主页上下载一个TCL语言安装包,这里也有一份可以直接下载。http://download1.csdn.net/down3/20070615/15185631347.CLF languages选项卡上的Import按钮,然后导入TCL语言支持文件,确定之后你会发现列表中有了TCL语言,选中它,然后再单击“Doc Types...”按钮,在弹出的对话框中单击右上角的AddType按钮,输入你TCL文件类型,随便起,比如“Tcl Script”,确定。然后你就可以在左侧的DocumentType下拉菜单中找到你刚刚加入的Tcl文件类型“Tcl Script”,在“File Filter”一栏中输入“*.tcl”,同时勾选"Including when adding into projects",并在Parsing组合框里,把Language由none改成Tcl就可以了。
下载后,选择
至此,SourceInsight已经能够正确的识别.cc与.tcl文件了。
3. 新建工程。选择project->new project,在弹出的对话框中输入工程名称,保存位置随便你自己了。确定之后会让你选择工程源文件目录,选择之后ns-allinone-2.xx后进入文件添加界面。这里应该在右侧的窗口中选择如下几个文件夹:ns-2.xx tcl-8.x.x tk-8.x.x tcl-1.xx,注意千万不要把Nam也包含进来,因为Nam和NS是不同的工程,两个程序。选中这几个文件夹后,点击右侧的“Add Tree”按钮,一番硬盘狂转之后应该会告诉你添加了2000个左右的文件。OK,大功告成。
4. 分析工程源文件。SourceInsight会自动在后台分析工程的所有源文件,所以在用它查看一个新工程的源码时,跳转、自动显示可能会有问题(比如告诉你没有定义或者没有实现等等),原因是因为没有分析完毕。所以新建一个工程后,应该点击project->Rebuild Porject,在弹出的对话框中选择Re-parse all source files,单击OK,于是又是一阵硬盘狂转之后,终成正果。
[@more@]
【NS2】使用SourceInsight阅读NS源代码全攻略(转载)的更多相关文章
- Android屏幕适配全攻略 (转载)
http://blog.csdn.net/jdsjlzx/article/details/45891551 https://github.com/hongyangAndroid/AndroidAuto ...
- Web前端性能优化全攻略[转载]
1. 尽量减少 HTTP 请求 (Make Fewer HTTP Requests) 作为第一条,可能也是最重要的一条.根据 Yahoo! 研究团队的数据分析,有很大一部分用户访问会因为这一条而取得最 ...
- Moon.Orm3.8技术全攻略
Moon.ORM技术全攻略 一.绪论 本文主要是针对Moon.ORM的技术的讨论及其使用使用指导.如有其它疑问,请留言.本文主要针对Moon.ORM3.9版本,同时将会对4.0做一个技术预览.本文从 ...
- 用C#制作PDF文件全攻略
用C#制作PDF文件全攻略 目 录 前 言... 3 第一部分 iText的简单应用... 4 第一章 创建一个Document 4 第一步 创建一个Document实例:... 5 第二步 ...
- Android使用XML全攻略(1)
Android使用XML全攻略(1) Android 是针对移动设备的一种新兴的开源操作系统和 SDK.借助它,您可以创建功能强大的移动应用程序.当您的应用程序可以访问 Web 服务时,其吸引力 ...
- VSCode插件开发全攻略(一)概览
文章索引 VSCode插件开发全攻略(一)概览 VSCode插件开发全攻略(二)HelloWord VSCode插件开发全攻略(三)package.json详解 VSCode插件开发全攻略(四)命令. ...
- [置顶] 创建GitHub技术博客全攻略
[置顶] 创建GitHub技术博客全攻略 分类: GitHub2014-07-12 13:10 19710人阅读 评论(21) 收藏 举报 githubio技术博客网站生成 说明: 首先,你需要注册一 ...
- 【转】Perl Unicode全攻略
Perl Unicode全攻略 耐心看完本文,相信你今后在unicode处理上不会再有什么问题. 本文内容适用于perl 5.8及其以上版本. perl internal form 在Perl看来, ...
- VS2013全攻略(安装,技巧,快捷键,插件)!
工欲善其事,必先利其器.VS2013全攻略(安装,技巧,快捷键,插件)! 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥>承蒙大家喜爱和编辑推荐,在此 ...
随机推荐
- xhEditor 简单用法
1.下载需要文件包: http://xheditor.com/ 2.解压文件中文件 xheditor-zh-cn.min.js以及xheditor_emot.xheditor_plugins和xhed ...
- iBaties对比hibernate
翻译至一篇2008年的文章(http://www.javaworld.com/article/2077875/open-source-tools/ibatis--hibernate--and-jpa- ...
- 【笔记】LR11中关联设置
LR中关联建议都手动进行,自动不好用,也容易出错. 在LR中我们什么要做关联:1.关联解决的是动态数据的参数化.2.关联的数据一定是服务器响应的数据.3.服务器响应过来的数据在后面的服务还要使用. 手 ...
- RQNOJ PID192 梦幻大PK [2017年6月计划 二分图02]
PID192 / 梦幻大PK ☆ 提交你的代码 查看讨论和题解 你还木有做过哦 我的状态 查看最后一次评测记录 质量 7 题目评价 质量 7 ★★★★★ ★★★★☆ ★★★☆☆ ★★☆ ...
- php中 重载的方法
php中 重载(一)这个文章,谢谢.作为初学者,大牛勿喷: 基本是两个方法 __call,当调用对一个不可访问的对象方法时,会自动执行该魔术方法!(对象调用) 典型的两种处理方式: 1,给出友好的提示 ...
- nginx源码分析线程池详解
nginx源码分析线程池详解 一.前言 nginx是采用多进程模型,master和worker之间主要通过pipe管道的方式进行通信,多进程的优势就在于各个进程互不影响.但是经常会有人问道,n ...
- 用两个栈实现队列功能【剑指offer】
题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 程序代码: [方法一] class Solution { public: void push(int ...
- HR招聘_(十)_招聘方法论(供应商管理)
招聘和供应商长期合作,所以供应商管理也至关重要.供应商一般分为猎头,渠道,外包三类. 猎头 高端职位,高难度职位,急需职位和量大职位会和猎头公司合作共同完成招聘任务,猎头公司一般会有两种服务,猎头和R ...
- 从0开始学习 GitHub 系列之「03.Git 速成」
前面的 GitHub 系列文章介绍过,GitHub 是基于 Git 的,所以也就意味着 Git 是基础,如果你不会 Git ,那么接下来你完全继续不下去,所以今天的教程就来说说 Git ,当然关于 G ...
- 洛谷 P1567 统计天数【最长上升子序列/断则归一】
题目背景 统计天数 题目描述 炎热的夏日,KC非常的不爽.他宁可忍受北极的寒冷,也不愿忍受厦门的夏天.最近,他开始研究天气的变化.他希望用研究的结果预测未来的天气. 经历千辛万苦,他收集了连续N(1& ...