轉:ns-allinone-2.27 安裝錯誤集錦

ns-allinone-2.27 安裝錯誤集錦
轉自:http://www.baisi.net/thread-2467503-1-1.html

爲了裝Leach協議,原來裝的好好的ns-allinone-2.33被我弄崩了,只好裝個ns-allinone-2.27普遍版。誰知,估計ns2能遇見的所有安裝問題都被我遇見了,從一開始的安裝包就出這樣或那樣的問題,皚皚。
記錄下來吧,免得以後忘掉了,有些錯誤真的很BT,網上搜的解決方法也BT,不知道他們都是怎麼想出來的,赫赫。
問題:
checking system version (for dynamic loading)... ./configure: line 7624: syntax error near unexpected token `)'
./configure: lline 7624: `       OSF*)'

tcl8.3.2 configuration failed! Exiting ...
解決:
把以下文件中的.relid'`替換成.relid`:
    ns-allinone-2.27/tcl8.4.5/unix/configure
    ns-allinone-2.27/tcl8.4.5/unix/tcl.m4
    ns-allinone-2.27/tk8.4.5/unix/configure
    ns-allinone-2.27/tk8.4.5/unix/tcl.m4
    ns-allinone-2.27/otcl-1.8/configure


問題:
clcl-mappings.h: In static member function `static int TclObjectHelper<T>::dispatch_(void*, Tcl_Interp*, int, char**)':
    tclcl-mappings.h:51: error: incomplete type `Tcl' used in nested name specifier
    tclcl-mappings.h:52: error: invalid use of undefined type `struct Tcl'
    tclcl-mappings.h:41: error: forward declaration of `struct Tcl'
    tclcl-mappings.h:57: error: invalid use of undefined type `struct Tcl'
    tclcl-mappings.h:41: error: forward declaration of `struct Tcl'
    make: *** [Tcl.o] Error 1
    tclcl-1.15 make failed! Exiting


解決:
下載對應的gcc的安裝布丁,然後再安裝。把補丁放在ns-allinone-2.27同一個目錄下面進行如下操作:
1. get a fresh ns-allinone-2.27.tar.gz
2. tar zxvf ns-allinone-2.27.tar.gz
3. patch -p0 < ns227-gcc34.patch
4. cd ns-allinone-2.27
5. ./install


問題:
./sctp/sctp.h:632: 錯誤:有多餘的限定‘SctpAgent::’在成員‘DumpSendBuffer’上
trace/trace.cc:185: 警告:不建議使用從字符串常量到‘char*’的轉換
trace/trace.cc:185: 警告:不建議使用從字符串常量到‘char*’的轉換
trace/trace.cc:185: 警告:不建議使用從字符串常量到‘char*’的轉換
trace/trace.cc:185: 警告:不建議使用從字符串常量到‘char*’的轉換
trace/trace.cc:185: 警告:不建議使用從字符串常量到‘char*’的轉換
make: *** [trace/trace.o] 錯誤 1
Ns make failed!

解決:

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/sctp/sctp.h

void SctpAgent::DumpSendBuffer();
改爲:
void DumpSendBuffer();


問題:解決:
./mobile/god.h: At global scope:
./mobile/god.h:88: 錯誤:有多餘的限定‘vector::’在成員‘operator=’上
./mobile/god.h:93: 錯誤:有多餘的限定‘vector::’在成員‘operator+=’上
./mobile/god.h:98: 錯誤:有多餘的限定‘vector::’在成員‘operator==’上
./mobile/god.h:101: 錯誤:有多餘的限定‘vector::’在成員‘operator!=’上
make: *** [src_rtg/sragent.o] 錯誤 1
Ns make failed!

解決:

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/mobile/god.h

inline void vector::operator=(const vector a)
inline void vector::operator+=(const vector a)
inline int vector::operator==(const vector a)
inline int vector::operator!=(const vector a)

改爲:
inline void operator=(const vector a)
inline void operator+=(const vector a)
inline int operator==(const vector a)
inline int operator!=(const vector a)

問題:
queue/cbq.cc:112: 錯誤:ISO C++ 不允許聲明無類型的‘CBQueue’
queue/cbq.cc:112: 錯誤:expected ‘;’ before ‘*’ token
queue/cbq.cc: In member function ‘virtual int CBQueue::insert_class(CBQClass*)’:
queue/cbq.cc:488: 錯誤:‘class CBQClass’沒有名爲‘cbq_’的成員
queue/cbq.cc: In constructor ‘CBQClass::CBQClass()’:
queue/cbq.cc:805: 錯誤:類‘CBQClass’沒有名爲‘cbq_’的字段
queue/cbq.cc: In member function ‘virtual void CBQClass::recv(Packet*, Handler*)’:
queue/cbq.cc:850: 錯誤:‘cbq_’在此作用域中尚未聲明
queue/cbq.cc:856: 錯誤:‘cbq_’在此作用域中尚未聲明
queue/cbq.cc: In member function ‘void CBQClass::update(Packet*, double)’:
queue/cbq.cc:873: 錯誤:‘cbq_’在此作用域中尚未聲明
queue/cbq.cc: In member function ‘int CBQClass::desc_with_demand()’:
queue/cbq.cc:928: 錯誤:‘cbq_’在此作用域中尚未聲明
queue/cbq.cc: In member function ‘void CBQClass::newallot(double)’:
queue/cbq.cc:975: 錯誤:‘cbq_’在此作用域中尚未聲明
queue/cbq.cc: In member function ‘virtual int CBQClass::command(int, const char* const*)’:
queue/cbq.cc:1002: 錯誤:‘cbq_’在此作用域中尚未聲明
make: *** [queue/cbq.o] 錯誤 1
Ns make failed!

解決:(+就是添加,-就是去掉咯)

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/queue/cbq.cc

#define POWEROFTWO 16
+class CBQueue;
class CBQClass : public Connector {

問題:
./tora/tora_neighbor.h:72: 錯誤:ISO C++ 不允許聲明無類型的‘toraAgent’
./tora/tora_neighbor.h:72: 錯誤:expected ‘;’ before ‘*’ token
tora/tora.cc: In member function ‘void toraAgent::rt_resolve(Packet*)’:
tora/tora.cc:238: 警告:不建議使用從字符串常量到‘char*’的轉換
tora/tora.cc: In member function ‘void toraAgent::recvUPD(Packet*)’:
tora/tora.cc:462: 警告:不建議使用從字符串常量到‘char*’的轉換
tora/tora.cc: In member function ‘void toraAgent::recvCLR(Packet*)’:
tora/tora.cc:648: 警告:不建議使用從字符串常量到‘char*’的轉換
make: *** [tora/tora.o] 錯誤 1
Ns make failed!

解決:

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/tora/tora_neighbor.h

#define __tora_neighbor_h__
+class toraAgent;
enum LinkStatus {

問題:
dsr/dsragent.cc:787: 錯誤:‘XmitFlowFailureCallback’在此作用域中尚未聲明
dsr/dsragent.cc:1344: 錯誤:‘XmitFailureCallback’在此作用域中尚未聲明
make: *** [dsr/dsragent.o] 錯誤 1
Ns make failed!

解決:

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/dsr/dsragent.cc

+void XmitFlowFailureCallback(Packet *pkt, void *data);
+void XmitFailureCallback(Packet *pkt, void *data);

/*===========================================================================
SendBuf management and helpers

問題:
diffusion/diffusion.cc:404: 錯誤:‘XmitFailedCallback’在此作用域中尚未聲明
make: *** [diffusion/diffusion.o] 錯誤 1
Ns make failed!

解決:

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/diffusion/diffusion.cc

#include "routing_table.h"
+void XmitFailedCallback(Packet *pkt, void *data);
char *MsgStr[]= {"", "INTEREST", "DATA", "DATA_READY", "DATA_REQUEST",

問題:
diffusion/omni_mcast.cc:367: 錯誤:‘OmniMcastXmitFailedCallback’在此作用域中尚未聲明
make: *** [diffusion/omni_mcast.o] 錯誤 1
Ns make failed!

解決:

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/diffusion/omni_mcast.cc

#include "god.h"
+void OmniMcastXmitFailedCallback(Packet *pkt, void *data);
static class OmniMcastClass : public TclClass {


問題:
tcp/tcp-sack-rh.cc:68: 錯誤:有多餘的限定‘SackRHTcpAgent::’在成員‘newack’上
make: *** [tcp/tcp-sack-rh.o] 錯誤 1
Ns make failed!

解決:

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/tcp/tcp-sack-rh.cc

virtual void computefack();
//virtual void SackRHTcpAgent::newack(Packet* pkt);
+virtual void newack(Packet *pkt);

問題:
pgm/pgm-agent.cc:278: 錯誤:有多餘的限定‘PgmAgent::’在成員‘trace_event’上
pgm/pgm-agent.cc: In member function ‘void PgmAgent::handle_rdata(Packet*)’:
pgm/pgm-agent.cc:578: 警告:不建議使用從字符串常量到‘char*’的轉換
pgm/pgm-agent.cc: In member function ‘void PgmAgent::handle_nak(Packet*)’:
pgm/pgm-agent.cc:727: 警告:不建議使用從字符串常量到‘char*’的轉換
pgm/pgm-agent.cc: In member function ‘void PgmAgent::handle_ncf(Packet*)’:
pgm/pgm-agent.cc:824: 警告:不建議使用從字符串常量到‘char*’的轉換
make: *** [pgm/pgm-agent.o] 錯誤 1
Ns make failed!

解決:

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/pgm/pgm-agent.cc

void print_stats();
-//void PgmAgent::trace_event(char *evType, double evTime);
+void trace_event(char *evType, double evTime);

問題:
pgm/pgm-sender.cc:160: 錯誤:有多餘的限定‘PgmSender::’在成員‘trace_event’上
pgm/pgm-sender.cc: In member function ‘virtual void PgmSender::handle_nak(Packet*)’:
pgm/pgm-sender.cc:472: 警告:不建議使用從字符串常量到‘char*’的轉換
pgm/pgm-sender.cc: In member function ‘virtual void PgmSender::send_rdata(RdataItem*)’:
pgm/pgm-sender.cc:619: 警告:不建議使用從字符串常量到‘char*’的轉換
make: *** [pgm/pgm-sender.o] 錯誤 1
Ns make failed!

解決:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/pgm/pgm-sender.cc

-//void PgmSender::trace_event(char *evType, nsaddr_t daddr, double evTime);
+void trace_event(char *evType, nsaddr_t daddr, double evTime);

問題:
pgm/pgm-receiver.cc:157: 錯誤:有多餘的限定‘PgmReceiver::’在成員‘trace_event’上
pgm/pgm-receiver.cc: In member function ‘void PgmReceiver::generate_Nak(int)’:
pgm/pgm-receiver.cc:589: 警告:不建議使用從字符串常量到‘char*’的轉換
make: *** [pgm/pgm-receiver.o] 錯誤 1
Ns make failed!

解決:
$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/pgm/pgm-receiver.cc

-void PgmReceiver::trace_event(char *evType, double evTime);
+void trace_event(char *evType, double evTime);

問題:
./diffusion3/filter_core/filter_core.hh:111: 錯誤:expected `)' before ‘*’ token
make: *** [diffusion3/ns/diffagent.o] 錯誤 1
Ns make failed!

解決:

$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/diffusion3/filter_core/filter_core.hh

class NeighborEntry;
+class DiffRoutingAgent;
typedef list<NeighborEntry *> NeighborList;


nam/agent.h:73行NULL->0

發佈了29 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章