![nam ubuntu 14.04 中出现分段错误(核心转储)](https://linux22.com/image/854842/nam%20ubuntu%2014.04%20%E4%B8%AD%E5%87%BA%E7%8E%B0%E5%88%86%E6%AE%B5%E9%94%99%E8%AF%AF%EF%BC%88%E6%A0%B8%E5%BF%83%E8%BD%AC%E5%82%A8%EF%BC%89.png)
当我通过终端使用 NS2 时,我不断收到段错误(核心转储)消息。
g_0zek@g-0zeK-pc:~$ ns lab1.tcl
g_0zek@g-0zeK-pc:~$ nam lab1.nam
Segmentation fault (core dumped)
尽管如此xgraph
代码看起来tcl
不错,因为它是大学提供的,我的一个朋友运行得很好。有什么想法吗?
答案1
不要通过终端安装。
从以下位置下载 ns-allinone-2.35.tar.gz 文件https://sourceforge.net/projects/nsnam/
安装以下依赖项
sudo apt-get install tcl8.5-dev tk8.5-dev gcc-4.4 g++-4.4 build-essential autoconf automake perl xgraph libxt-dev libx11-dev libxmu-dev.
提炼ns-allinone-2.35.tar.gz
打开ns-allinone-2.35/ns-2.35/linkstate/ls.h
文件。
转至第 137 行。
改变
"void eraseAll() {erase(baseMap::begin(), baseMap::end());}"
到
"void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }"
然后进入 ns-allinone-2.35 目录
cd home/isysway/ns-allinone-2.35/
./install
需要一些时间
进入主目录
isysway@isysway:~$ sudo gedit .bashrc
将打开一个文本文件
转至文件末尾
添加以下行
PATH=$PATH:/home/isysway/ns-allinone-2.35/bin:/home/isysway/ns-allinone-2.35/tcl8.5.10/unix:/home/isysway/ns-allinone-2.35/tk8.5.10/unix
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/isysway/ns-allinone-2.35/otcl-1.14/lib:/home/isysway/ns-allinone-2.35/lib
TCL_LIBRARY=$TCL_LIBRARY:/home/isysway/ns-allinone-2.35/tcl8.5.10/library
export PATH
export LD_LIBRARY_PATH
export TCL_LIBRARY
注意:我的用户名是“isysway”,你可以将其替换为你的
isysway@isysway:~$source .bashrc
然后
isysway@isysway:~$ns
%
如果出现模数符号,则表示您成功了。
答案2
确保你正确安装了 NS。如何安装?首先下载一个不运行 nam 的 TCl 文件。如果你不知道 nam 只是为了以图形方式描述算法。下载并运行 TCL 文件后(正如我所说,免费下载 nam,或者至少你自己禁用该行或将它们作为 TCL 文件中的注释)。
在 14.04 上运行 nam 时出现一些问题。您应该从以下位置下载 nam这里并将解压的文件复制到 /usr/local/bin 。但我只是针对 ubuntu 32 位 14.04 进行了测试。
顺便说一句,如果你是 NS2 新手,我应该告诉你没有必要遵循 Erlang NS2 方法。如果你还不担心,我建议你看看这里:http://www.linuxquestions.org/questions/linux-newbie-8/ns2-version-2-34-is-too-old-wpan-802-15-4-a-4175499373/
答案3
我认为 Ubuntu 14.04 软件包中一定存在错误。最好的办法可能是从源代码安装,直到软件包维护人员修复该问题。我已经开始报告了错误。