首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在manjaro系统上安装网络模拟器2

在manjaro系统上安装网络模拟器2
EN

Stack Overflow用户
提问于 2018-01-10 18:20:56
回答 3查看 1.8K关注 0票数 1

我试图在4.9.68-1-MANJARO上安装ns2,但得到了这个错误

代码语言:javascript
复制
    mdart/mdart_adp.cc:396:21: error: reference to ‘hash’ is ambiguous
  nsaddr_t dstAdd_ = hash(mdart_->id_);
                     ^~~~
In file included from ./mdart/mdart.h:52:0,
                 from ./mdart/mdart_adp.h:51,
                 from mdart/mdart_adp.cc:47:
./mdart/mdart_function.h:230:17: note: candidates are: nsaddr_t hash(nsaddr_t)
 inline nsaddr_t hash(nsaddr_t id) {
                 ^~~~
In file included from /usr/include/c++/7.2.1/bits/basic_string.h:6575:0,
                 from /usr/include/c++/7.2.1/string:52,
                 from /usr/include/c++/7.2.1/bitset:47,
                 from ./mdart/mdart_function.h:62,
                 from ./mdart/mdart.h:52,
                 from ./mdart/mdart_adp.h:51,
                 from mdart/mdart_adp.cc:47:
/usr/include/c++/7.2.1/bits/functional_hash.h:58:12: note:                 template<class _Tp> struct std::hash
     struct hash;
            ^~~~
make: *** [Makefile:94: mdart/mdart_adp.o] Error 1
Ns make failed!

我把137行从

代码语言:javascript
复制
void eraseAll() {erase(baseMap::begin(), baseMap::end()); }

代码语言:javascript
复制
void eraseAll() { baseMap::erase(baseMap::begin(), baseMap::end()); } 

但是,还是有同样的错误。请帮帮我。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-01-10 21:15:11

我将otcl-1.14/Makefile.in的第7行改为CC= gcc-4.9.3

这里最重要的gcc组分是g++

建筑ns-2.35与gcc-4.9.3 / g++-4.9.3:

代码语言:javascript
复制
$ tar xvf ns-allinone-2.35_gcc5.tar.gz
$ cd ns-allinone-2.35/
$ export CC=gcc-4.9.3 CXX=g++-4.9.3 && ./install
$ cd ns-2.35/
# make install
                  // 'make install' will copy 'ns' to /usr/local/bin/
# cd ../nam-1.15/
# make install && exit

注意:(临时)导出命令将注意ns-allinone中的主要应用程序是用gcc-4.9.3 /g+-4.9.3编译的: tcl、tk、otcl、tclcl、ns-2.35、nam-1.15。退出终端时,取消导出命令。

2020年8月31日编辑: gcc49-bin-4.9.3-el6.tar.xz是可用的https://drive.google.com/file/d/1w0jT6q59rfZ-Bl--G5Y6jRVjjxu4CH68/view?usp=sharing

代码语言:javascript
复制
cd /usr/local/
# tar xvf gcc49-bin-4.9.3-el6.tar.xz
# cd bin/
# ln -s ../gcc493/bin/gcc49
# ln -s ../gcc493/bin/g++49
票数 0
EN

Stack Overflow用户

发布于 2021-01-12 17:51:42

我们必须编辑ns-allinone-2.35的源代码。它包含了一些错误:

ns-allinone-2.35/ns-2.35/mdart/ In 我们必须编辑 3 文件

  • 第一个文件是mdart_function.h,在行号230hash重命名为hash_
  • 第二个文件是mdart_adp.cc,位于108行,396hash重命名为hash_

我们需要将hash更改为hash_的原因是!,hashSTL library utility,所以它将直接引用STL std::hash。所以我把hash重命名为hash_

  • 第三个文件是mdart_function.h,在行号48重写行像这样的#define __mdart_rqueue_h__

原因是,如果我们写的是头文件,那么第一步我们必须写如下,

代码语言:javascript
复制
#ifdefn __filename_h__
#define __filename_h__

只在filename.h

现在在ns-allinone-2.35/ns-2.35/linkstate/ 中,我们必须编辑 ls.h 文件

  • 在行号处,64重写像#ifndef __ls_h__65应该像#define __ls_h__

就这样。在此之后,去安装。

票数 0
EN

Stack Overflow用户

发布于 2022-10-18 05:38:54

在编写本报告时,包管理器中有一个名为"ns“的包。它的版本相同,即8月提供的2.35-9版本。它的安装对我来说没有任何麻烦和缺陷。

试一试吧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48193831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档