在 Ubuntu 17.01 上安装 NS2 时出错

在 Ubuntu 17.01 上安装 NS2 时出错

在 Ubuntu 17.01 上安装 ns2 时不断出现以下错误:

mdart/mdart_adp.cc: In member function ‘void ADP::sendDarq(nsaddr_t, 
int)’:
mdart/mdart_adp.cc:108:21: error: reference to ‘hash’ is ambiguous
nsaddr_t dstAdd_ = hash(reqId);
                 ^~~~
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/bits/basic_string.h:6575:0,
             from /usr/include/c++/7/string:52,
             from /usr/include/c++/7/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/bits/functional_hash.h:58:12: note:                 
 template<class _Tp> struct std::hash
 struct hash;
        ^~~~
mdart/mdart_adp.cc: In member function ‘void ADP::sendDaup()’:
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/bits/basic_string.h:6575:0,
             from /usr/include/c++/7/string:52,
             from /usr/include/c++/7/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/bits/functional_hash.h:58:12: note:                 
template<class _Tp> struct std::hash
 struct hash;
        ^~~~
Makefile:93: recipe for target "mdart/mdart_adp.o" failed
make: *** [mdart/mdart_adp.o] Errore 1
Ns make failed!
See http://www.isi.edu/nsnam/ns/ns-problems.html for problems

答案1

'ns-2.35' Ubuntu 17.10 : sudo apt install g++-5→ 即不晚于 g++-5 (>=5.4) 可以使用。笔记:您可以同时安装任意数量的 gcc 版本。

tar xvf ns-allinone-2.35_gcc5.tar.gz           // 2014 - 2017 update

https://drive.google.com/file/d/0B7S255p3kFXNVVlxR0ZNRGVORjQ/view?usp=sharing

cd ns-allinone-2.35/
export CC=gcc-5 CXX=g++-5 && ./install
cd ns-2.35/
sudo make install

如果您需要附加协议 → 所有~300 个补丁 →https://drive.google.com/drive/folders/0B7S255p3kFXNZ2lWZDBRSW40Q00?usp=sharing...以及约 2500 次模拟https://drive.google.com/drive/folders/0B7S255p3kFXNSmRYb2lGcDRUdWs?usp=sharing

相关内容