在 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