我正在尝试使用ns-allinone-2.35.tar.gz软件包在我的ubuntu 13.10中安装ns2。
起初我得到x11 / *目录未找到错误。在完成一些教程并安装以下工具之后,帮助我克服了这些问题。
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!
这是我尝试安装和失败的第5天。因为依赖于如此多的依赖,在使用Cygwin在Windows 7中安装时感到烦躁,现在我正在尝试使用ubuntu但是遇到了这样的错误。
如何解决这个问题?
答案 0 :(得分:10)
我要从
编辑ns-2.35/linkstate/ls.h
的第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安装问题。它会很有用。
答案 1 :(得分:2)
无需编辑任何源代码。只需使用旧版本的gcc,一切都应该可以正常工作。
安装前,请执行
export CC=gcc-4.4 CXX=g++-4.4
如果您没有这些旧版本,请使用
sudo apt-get install gcc-4.4 g++-4.4
答案 2 :(得分: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
”文件夹中。
有人在评论中提到有关NAM文件的问题。尝试那里给出的步骤:)如果需要,尝试交叉检查其他步骤。