Hello, I am quite new to ns and for a specific project I am doing my best to install the Is-Is module on ns-2.33(the latest version). Since the code has been written for ns-2.1b8a I manually patched Makefile/Makefile.in, dynalink.cc, etc. Everything great.
But still, the module has a problem with my gcc 4.1.2 compiler on CentOS. It uses C++ template classes and it seems that the code needs to be fully adapted in order to work. I am posting the error message I got: g++ -c -Wall -DTCP_DELAY_BIND_ALL -DNO_TK -DTCLCL_CLASSINSTVAR -DNDEBUG -DLINUX_TCP_HEADER -DUSE_SHM -DHAVE_LIBTCLCL -DHAVE_TCLCL_H -DHAVE_LIBOTCL1_13 -DHAVE_OTCL_H -DHAVE_LIBTK8_4 -DHAVE_TK_H -DHAVE_LIBTCL8_4 -DHAVE_TCL_H -DHAVE_CONFIG_H -DNS_DIFFUSION -DSMAC_NO_SYNC -DCPP_NAMESPACE=std -DUSE_SINGLE_ADDRESS_SPACE -Drng_test -I. -I. -I/usr/src/ns-allinone-2.33/tclcl-1.19 -I/usr/src/ns-allinone-2.33/otcl -I/usr/src/ns-allinone-2.33/include -I/usr/src/ns-allinone-2.33/include -I/usr/include/pcap -I./tcp -I./sctp -I./common -I./link -I./queue -I./adc -I./apps -I./mac -I./mobile -I./trace -I./routing -I./tools -I./classifier -I./mcast -I./diffusion3/lib/main -I./diffusion3/lib -I./diffusion3/lib/nr -I./diffusion3/ns -I./diffusion3/filter_core -I./asim/ -I./qs -I./diffserv -I./satellite -I./wpan -o link/dynalink.o link/dynalink.cc In file included from /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/backw ard/fstream.h:31, from ./isis/manager.h:31, from ./isis/lspmanager.h:26, from link/dynalink.cc:57: /usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2/backw ard/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated. ./isis/stlext.h:35: error: expected template-name before '<' token ./isis/stlext.h:35: error: expected `{' before '<' token ./isis/stlext.h:35: error: expected unqualified-id before '<' token ./isis/stlext.h:53: error: expected template-name before '<' token ./isis/stlext.h:53: error: expected `{' before '<' token ./isis/stlext.h:53: error: expected unqualified-id before '<' token ./isis/stlext.h:74: error: expected template-name before '<' token ./isis/stlext.h:74: error: expected `{' before '<' token ./isis/stlext.h:74: error: expected unqualified-id before '<' token ./isis/stlext.h:117: error: invalid use of undefined type 'class ISISList<int>' ./isis/stlext.h:53: error: declaration of 'class ISISList<int>' ./isis/stlext.h: In constructor 'IntList::IntList(char*, const char*)': ./isis/stlext.h:120: error: type 'ISISList<int>' is not a direct base of 'IntList' ./isis/stlext.h:123: error: 'push_back' was not declared in this scope ./isis/stlext.h: In member function 'void isiserr::warn(char*)': ./isis/stlext.h:135: error: 'cerr' was not declared in this scope ./isis/stlext.h:135: error: 'endl' was not declared in this scope ./isis/stlext.h: In member function 'void isiserr::err(char*)': ./isis/stlext.h:138: error: 'cerr' was not declared in this scope ./isis/stlext.h:138: error: 'endl' was not declared in this scope ./isis/cpuqueue.h: At global scope: ./isis/cpuqueue.h:38: error: ISO C++ forbids declaration of 'queue' with no type ./isis/cpuqueue.h:38: error: expected ';' before '<' token ./isis/manager.h:42: error: field 'areaIds' has incomplete type ./isis/manager.h:52: error: field 'SRMflags' has incomplete type ./isis/manager.h:53: error: field 'SSNflags' has incomplete type ./isis/manager.h:59: warning: 'class ISISNode' has virtual functions but non-virtual destructor ./isis/manager.h:99: warning: 'class Manager' has virtual functions but non-virtual destructor ./isis/lspmanager.h:157: error: aggregate 'ISISMap<u_char*, bool> inSendersDb' has incomplete type and cannot be defined ./isis/lspmanager.h:158: error: aggregate 'ISISMap<u_char*, int> counter' has incomplete type and cannot be defined ./isis/lspmanager.h:159: error: aggregate 'ISISList<u_char*> lista' has incomplete type and cannot be defined ./isis/lspmanager.h:208: error: field 'circuitIds' has incomplete type ./isis/lspmanager.h:211: error: field 'adjacencies' has incomplete type ./isis/lspmanager.h:212: error: field 'l1ips' has incomplete type ./isis/lspmanager.h:221: error: field 'lspThrottleTimers' has incomplete type ./isis/lspmanager.h:222: error: field 'psnpIntervalTimers' has incomplete type ./isis/lspmanager.h:227: error: field 'lspInfos' has incomplete type ./isis/lspmanager.h:228: error: field 'lspDb' has incomplete type ./isis/lspmanager.h:173: warning: 'class LspManager' has virtual functions but non-virtual destructor ./isis/lspmanager.h: In member function 'ISISMap<LspId, LspRecord*>* LspManager::getLspDb()': ./isis/lspmanager.h:196: error: 'lspDb' was not declared in this scope ./isis/lspmanager.h: At global scope: ./isis/lspmanager.h:116: warning: inline function 'virtual void LspDelayTimer::expire(Event*)' used but never defined ./isis/lspmanager.h:104: warning: inline function 'virtual void MinLspGenerationTimer::expire(Event*)' used but never defined ./isis/lspmanager.h:90: warning: inline function 'virtual void MaxLspGenerationTimer::expire(Event*)' used but never defined ./isis/lspmanager.h:59: warning: inline function 'virtual void MinLspTransmissionTimer::expire(Event*)' used but never defined ./isis/lspmanager.h:46: warning: inline function 'virtual void SPFdelayTimer::expire(Event*)' used but never defined ./isis/lspmanager.h:157: warning: 'inSendersDb' defined but not used ./isis/lspmanager.h:158: warning: 'counter' defined but not used ./isis/lspmanager.h:159: warning: 'lista' defined but not used Anyone knows if there is a trick to solve this problem? My researches till now gave me no obvious solution. I am thinking more and more of downgrading my compiler, but then will my ns work properly? Thank you, Ovidiu MUL