之前就知道这个软件安装起来很恶心,因为毕竟是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学习之路的第一步,搞个博客纪念下,没人看也无所谓,习惯自嗨~

关于NS2安装的若干问题的更多相关文章

  1. 【工具】NS2安装记录

    献给同样为了NS2抓破了头皮的同志们. 1, Get Started: http://www.isi.edu/nsnam/ns/ns-build.html#allinone Build by piec ...

  2. NS2安装过程中环境变量设置的问题(ns-2.35)

    nam: Can't find a usable tk.tcl in the following directories: */ns-allinone-2.35/tcl8.5.10/library/t ...

  3. Ubuntu中NS2安装详细教程

    前言: NS2是指 Network Simulator version 2,NS(Network Simulator) 是一种针对网络技术的源代码公开的.免费的软件模拟平台,研究人员使用它可以很容易的 ...

  4. Ubuntu 16——安装——ns2.35和nam

    Ubuntu 16.04 安装ns2.35+nam 总结出以下安装步骤 1: 更新源 sudo apt-get update #更新源列表 sudo apt-get upgrade #更新已经安装的包 ...

  5. 【NS2】ubuntu安装和同时使用不同版本的ns2(转载)

    有时候我们可能会遇到要同时安装两个ns版本的问题,比如我研究wimax/802.16,因为协议太复杂,用的是长庚大学和nist的wimax补丁.长庚大学的wimax补丁是在ns2.29下开发的,nis ...

  6. 普通windows版本安装winServer的特色功能 以dedup功能为展示点

    安装 Windows 功能角色 1.选择安装源 在 Windows 8.1 系统上不存在重复数据删除功能,需要从对应的服务器版本,即 Windows Server 2012 R2 上提取相关文件. 2 ...

  7. CentOS7.1下JDK+Tomcat应用环境搭建

    最近由于项目的原因,需要测试Linux环境下的应用部署情况.选用了CentOS7.1版本+JDK1.6版本+Tomcat7.0版本进行搭建.其间各种折磨就不说了,随手把相关的注意事项和大概的步骤记录下 ...

  8. Hadoop数据操作系统YARN全解析

    “ Hadoop 2.0引入YARN,大大提高了集群的资源利用率并降低了集群管理成本.其在异构集群中是怎样应用的?Hulu又有哪些成功实践可以分享? 为了能够对集群中的资源进行统一管理和调度,Hado ...

  9. 一加3T 误清除data 恢复数据

    数据丢失经过:日常用机无备份直接操作:装google框架后,rootexplorer文件浏览器删除多余google应用导致无法开机:开机不成功应该重刷入google gapps包,并没有这样操作而是进 ...

随机推荐

  1. JAVA-Semaphore信号灯-可实现维护自身线程访问数

    import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Ex ...

  2. [问题2015S10] 复旦高等代数 II(14级)每周一题(第十一教学周)

    [问题2015S10]  设 \(A\) 为 \(n\) 阶实方阵, 证明: 存在 \(n\) 阶非异实对称阵 \(R\), 使得 \(A'=R^{-1}AR\), 即 \(A\) 可通过非异实对称阵 ...

  3. Ubuntu Linux 12.04 LTS amd64系统本地root提权

    URL:http://www.ichunqiu.com/section/173 由于fusermount二进制调用setuid的(geteuid())重置RUID时,它调用/bin/mount才能使用 ...

  4. Java 中的 static 使用之静态方法

    与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法.其实之前我们一直写的 main 方法就是静态方法.静态方法的使用如: 运行结果: 需要注意: 1. 静态方法中可以直接调用 ...

  5. Linux文本流

    Linux文本流   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 文本流 文件用于数据的存储,相当于一个个存储数据的房子.我们 ...

  6. TCP/IP知识点汇总

    1.HUB.Switch.Router在OSI模型中分别是第几层设备,各层的名称是什么? 2.TCP/IP 协议栈及 OSI 参考模型详解

  7. Ubuntu anzhuang

    zhongwenshurubuzhidaozenmeqiehuan anhzuang Flash  apt-get install flashplugin-installer

  8. table插件实现

    选择.取消.全选.全部取消.获取行ids /** * Created by lizongqiong on 2016/1/8. */ var $ = require('jquery'); var tab ...

  9. JS_call_APP native 与 html的交互

    1.***** 特点:下个版本的交互准备使用这个(http://www.knowsky.com/884428.html) https://github.com/lifei321/JS-OC http: ...

  10. ReentRantLock使用

    synchronized原语和ReentrantLock在一般情况下没有什么区别,但是在非常复杂的同步应用中,请考虑使用ReentrantLock,特别是遇到下面2种需求的时候. 1.某个线程在等待一 ...