5

我正在尝试使用 ns-allinone-2.35.tar.gz 包在我的 ubuntu 13.10 中安装 ns2。

起初我得到 x11/* directory not found 错误。在遵循了一些教程并安装了以下工具之后,帮助我克服了这些问题。

sudo apt-fast install tcl8.5-dev tk8.5-dev
sudo apt-fast install build-essential autoconf automake
sudo apt-fast install perl xgraph libxt-dev libx11-dev libxmu-dev
sudo apt-fast install xorg-dev g++ xgraph

但是,现在我收到以下错误:

linkstate/ls.h:137:58: error: ‘erase’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
  void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
                                                          ^
linkstate/ls.h:137:58: note: declarations in dependent base ‘std::map<int, LsIdSeq, std::less<int>, std::allocator<std::pair<const int, LsIdSeq> > >’ are not found by unqualified lookup
linkstate/ls.h:137:58: note: use ‘this->erase’ instead
make: *** [linkstate/ls.o] Error 1
Ns make failed!

这是我尝试安装并失败的第五天。由于太多的依赖关系,在使用 Cygwin 在 Windows 7 中安装时感到恼火之后,现在我在 ubuntu 中尝试但遇到了这样的错误。

如何解决这个问题?

4

3 回答 3

10

我必须编辑ns-2.35/linkstate/ls.hfrom的第 137 行

void eraseAll() { erase(baseMap::begin(), baseMap::end()); }

void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }

我的ns2安装成功了。但是在kali-linux内部。在 ubuntu 中,虽然我正确设置了路径并且它显示了 nam 安装成功的消息,但 nam 无法正常工作并显示它未安装的错误。

如果你想验证,它会显示一些失败。libperl4-corelibs-perl您可以通过使用安装来纠正它们

sudo apt-get install libperl4-corelibs-perl

或者如果你安装了 apt-fast

sudo apt-fast install libperl4-corelibs-perl

如果有人可以帮助我解决 ubuntu 中的 nam 安装问题。它会很有用。

于 2014-01-12T19:06:50.827 回答
2

无需编辑任何源代码。只需使用旧版本的 gcc,一切都应该正常。

安装前,做

export CC=gcc-4.4 CXX=g++-4.4

如果您没有这些旧版本,请使用

sudo apt-get install gcc-4.4 g++-4.4
于 2014-02-20T04:44:28.190 回答
0

我在安装 ns2 时遇到了同样的错误。更改源代码有帮助!

首先使用以下步骤进行验证: 1) 打开终端并移动到目录 '/home/user_name/Documents/ns-allinone-2.35/ns-2.35/' 并运行(将 user_name 替换为您的用户名):

./validate

2) 如果问题仍然存在,则从您的 ' /home/[username]/ns-allinone-2.35/nam-1.15' 文件夹中复制 'nam' 文件并将其粘贴到 ' /usr/local/bin' 文件夹中。

参考:如何安装 NS2

有人在评论中提到 NAM 文件有问题。尝试那里给出的步骤:) 如果需要,也可以尝试交叉检查其他步骤。

于 2015-04-10T20:20:29.157 回答