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