关于NS2安装的若干问题

之前就知道这个软件安装起来很恶心,因为毕竟是10年前的软件,可没想到真的好恶心...花了整整一天才装上.

我安装的版本是ns-allinone-2.28,系统版本是ubuntu14.04

其实大部分出现的问题在别人的博客都能解决,但是有一些不能.

下面列出我遇到的,自己解决的问题,之前没截图,大概写下吧

1.int* 到 int丢失精度的问题

这个问题我查了一些资料发现,原来的版本是32位的,而我的ubuntu是64位的,所以会出现丢失精度的问题(64位里int和32位里的长度不一样)

解决方法: 把出现问题的文件打开,对具体某行(问题里会说明,如果没给出具体行数就真的爆炸)修改,修改方法是把原来的int类型改成 unsigned long int类型

这一类的问题都可以这么修改

2.const char* 不能转换到char*的问题

这个问题很容易解决,找到具体文件具体行,强制类型转换为char*就可以

3.fix_x86_64-unknown-linux-gnu.sh

第三个问题是开始遇到的,记不太清了,大概就是无法识别64位之类的,总之运行个补丁脚本就可以了,网上可以查到这个脚本

其他还有的问题都是根据报错的信息可以直接修改的,例如删除掉一些前缀之类的,有些找不到变量的情况网上都有相关补充定义变量的方法

昨天大概就是遇到这些问题,还有些小问题不细说,总之安装了无数遍终于安装完

但是事情没这么简单,今天我想测试一个demo的时候,发现nam不能用!!!当时我的内心是崩溃的.

我在ns的文件夹里搜了一下,发现根本就没有nam.exe这个文件.网上查了好久也没找到这种错,当时感觉真的神烦,后来运气好,在全盘里搜了下,

发现其实是有nam.exe的,但是跑到usr/bin里面,于是我果断复制粘贴到ns的bin里,以为这下子终于搞定了

但我在运行nam时候,又你妹的报错了
$nam
这时就会出现下面的错误提示:
[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
}"
    invoked from within
"if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} {

bind Listbox <MouseWheel> {
%W yview scroll [expr {- (%D)}] units
}
bind Li..."

百度后发现,这个是由于nam调用的tk组件和xproto-7.0.13不兼容导致的(xproto-7.0.13 新添加了 GenericEvent)。解决方法如下:
在tk-8.4.11/generic/tkBind.c的第588行后添加3行代码
添加后,效果为:
/* MappingNotify /       0,
#ifdef GenericEvent
/* GenericEvent */      0,
#endif
/* VirtualEvent */        VIRTUAL,

改过后需要重新在ns文件夹目录下./intsall

网上的解决方案基本都是这个,但是我用了发现仍然不能解决我的问题.倒腾了半天,忽然发现我ns文件夹里的bin中的nam.exe是可以打开nam的(第一次看到nam,很激动)

但是usr/bin里的nam.exe打不开,哦!原来usr里的这玩意是以前没改过的!

所以把可执行的那个nam.exe拷贝到usr里就搞定了,其中有个小问题,在usr下默认是没有权限复制文件过去的,需要这条命令: sudo nautilus

效果就是可以以最高权限打开一个文件夹,然后就是复制粘贴的事了,最终运行simple.tcl,终于出现nam动画了!

这下ns2算是老老实实的被我装好了:) 也算是我ns2学习之路的第一步,搞个博客纪念下,没人看也无所谓,习惯自嗨~

原文地址:https://www.cnblogs.com/btlcmr/p/5074429.html