安裝必須的軟體環境:
$ sudo apt-get install build-essential autoconf automake libxmu-dev
$ sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev
$ sduo apt-get install libxmu-dev libxmu-headers
注:ns-allinone-2.30以上版本是沒有例子的可以從低版本上下如2.8;
**************以下轉自http://blog.163.com/[email protected]/blog/static/11243759620096213484159/*****************
1.首先ubuntu 8.04安裝後,系統中gcc是不能用來的開發的,隻有一個空殼,是以需要重新安裝gcc。
先用指令: sudo apt-get remove gcc
然後 : $sudo apt -get install build-essential
$ sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev
$ sduo apt-get install libxmu-dev libxmu-headers
2.在新立得軟體包管理器中下載下傳最新的NS2.34,下載下傳結束後解壓安裝(我解壓在根目錄中)
$ tar -xzvf ns-allinone-2.34.tar.gz
$ cd ns-allinone-2.34
$./install
*注意當出現類似tk8.4.18,安裝中斷退出時,先輸入:sudo apt-cache search x11-dev
得到類似以下資訊:
libgl1-mesa-swx11-dev - A free implementation of the OpenGL API -- development files
libx11-dev - X11 client-side library (development headers)
libghc6-x11-dev - Haskell X11 binding for GHC
libgtkglextmm-x11-dev - C++ wrapper for the OpenGL Extension to GTK (development files)
分别安裝上面的元件(更新為最新版本,當然如果已經是最新版本的話,它會提醒),指令如下:
sudo apt-get install libx11-dev
sudo apt-get install libgl1-mesa-swx11-dev
sudo apt-get install libghc6-x11-dev
sudo apt-get install libgtkglextmm-x11-dev
3.重新安裝
$ cd ns-allinone-2.34
$./install
4.如果安裝成功,系統會在末尾提示你進行相關環境變量的設定
5. 設定環境變量
方法1:
export
PATH="$PATH:/home/menghaijun/ns-allinone-2.34/bin:/homemenghaijun/ns-allinone-2.34/tcl8.4.18/unix:/home/ns2/ns-allinone-2.34/tk8.4.18/unix"
export
LD_LIBRARY_PATH="/home/menghaijun/ns-allinone-2.34/otcl-1.13:/home/menghaijun/ns-allinone-2.34/lib"
export
TCL_LIBRARY="$TCL_LIBRARY:/home/menghaijun/ns-allinone-2.34/tcl8.4.18/library"
方法2:
修改 .bashrc 檔案
重新打開一個終端,進行如下操作:
[email protected]:~$ sudo gedit ~/.bashrc
在檔案末尾添加如下指令:
PATH="$PATH:/home/menghaijun/ns-allinone-2.34/bin:/home/menghaijun/ns-allinone-2.34/tcl8.4.18/unix:/home/menghaijun/ns-allinone-2.34/tk8.4.18/unix"
LD_LIBRARY_PATH="/menghaijun/ns-allinone-2.34/otcl-1.13:/home/menghaijun/ns-allinone-2.34/lib"
TCL_LIBRARY="$TCL_LIBRARY:/home/menghaijun/ns-allinone-2.34/tcl8.4.18/library"
儲存即可。
6. 驗證
(1)在終端下輸入
cd ns-2.34
./validat
(2)終端輸入NS,檢視是否出現%,如果已經出現則表示安裝成功。
如果你在終端下鍵入“ns”,可能會出現下面的錯誤提示:
The program 'ns' is currently not installed. You can install it by typing:
sudo apt-get install host
Make sure you have the 'universe' component enabled
bash: ns: command not found
這可能是因為你的環境變量尚未設定好。确定你的~/.bashrc檔案設定正确,并被寫入進~
/.bashrc中了。如果還不行,那就重新開機一下電腦。
附加:
後續問題:安裝成功後運作,終端輸入ns後在%後輸入nam,沒有方框彈出
解決方案:
先手動編譯nam生成可執行檔案nam
進入ns-allinone-2.34/nam-1.14,輸入指令:make
結果顯示錯誤:
xwd.c:87:29: 錯誤: X11/Xmu/WinUtil.h:No such file or directory
make: *** [xwd.o] 錯誤 1
問題是xmu沒有安裝,于是再裝xmu,
指令為:
sudo apt-get install libxmu-dev
安裝成功後,再輸入make進行編譯,完成後在ns-allinone-2.34/nam-1.14中,将可執行檔案nam複制到ns-allinone-2.34/bin/目錄下,這樣由于$PATH環境變量中有ns-allinone-2.34/bin項,nam就可以直接運作了。
*************以上轉自http://blog.163.com/[email protected]/blog/static/11243759620096213484159/*****************
************以下轉自http://hi.baidu.com/jerry_916/blog/item/e0e7085516213d51d009065b.html**************************
1、關于不同版本ns2的安裝出現的問題的解決方案(此處就ns2.27,2.29,2.31,2.33,2.34作解)
若在ubuntu上安裝ns2要先裝幾個庫檔案:
(1)sudo apt-get install build-essential,這樣可以安裝gcc,make。
(2)安裝tk,tcl
sudo apt-get install tcl8.4
sudo apt-get install tcl8.4-dev
sudo apt-get install tk8.4
sudo apt-get install tk8.4-dev
(3)sudo apt-get install libxmu-dev,是和nam有關的東西。完畢。
以下部分為各版本安裝攻略,如有疑問,歡迎留言。。。
1) ns-2.27安裝
問題(1)提示Syntax error: Unterminated quoted string,導緻tcl,tk,otcl不能安裝的問題
(這個問題是因gcc對文法要求更加嚴格,其他版本也會出現這個問題,解決辦法同此)
安裝中提示如下錯誤:
checking system version (for dynamic loading)... ./configure: 1: Syntax error: Unterminated quoted string tcl8.3.2 configuration failed! Exiting
solution:
終端中,依次輸入以下指令,将顯示的對應的檔案位置的system=MP-RAS-`awk '{print }' /etc/.relid'` 更改為system=MP-RAS-`awk '{print }' /etc/.relid`(即去掉後面的')
grep 'system=MP-RAS-' ***/*/* -n
然後根據索引到的檔案一個一個更改過來。
即分别進入以下目錄:
tcl8.x.x/unix/tcl.m4.
tk8.x.x/unix/tcl.m4.
otcl-1.x/configure.in.
将這些檔案裡的system=MP-RAS-`awk ' { print $3 } '/etc/.relid'` 改為:
system=MP-RAS-`awk ' { print $3 } '/etc/.relid`
問題(2)
tclcl-mappings.h:51: error: incomplete type ‘Tcl’ used in nested name specifier
tclcl-mappings.h:52: error: invalid use of incomplete type ‘struct Tcl’
tclcl-mappings.h:41: error: forward declaration of ‘struct Tcl’
tclcl-mappings.h:57: error: invalid use of incomplete type ‘struct Tcl’
tclcl-mappings.h:41: error: forward declaration of ‘struct Tcl’
make: *** [Tcl.o] Error 1
tclcl-1.15 make failed! Exiting ...
solution:patch -p0 < ns227-gcc34.patch
問題(3)參見ns-2.29所列問題(1),(2),(3),(4),(9),(5),(6),(7),(8)。
問題(4)
queue/cbq.cc:112: error: ISO C++ forbids declaration of ‘CBQueue’ with no type
queue/cbq.cc:112: error: expected ‘;’ before ‘*’ token
queue/cbq.cc: In member function ‘virtual int CBQueue::insert_class(CBQClass*)’:
queue/cbq.cc:488: error: ‘class CBQClass’ has no member named ‘cbq_’
queue/cbq.cc: In constructor ‘CBQClass::CBQClass()’:
queue/cbq.cc:805: error: class ‘CBQClass’ does not have any field named ‘cbq_’
queue/cbq.cc: In member function ‘virtual void CBQClass::recv(Packet*, Handler*)’:
queue/cbq.cc:850: error: ‘cbq_’ was not declared in this scope
queue/cbq.cc:856: error: ‘cbq_’ was not declared in this scope
queue/cbq.cc: In member function ‘void CBQClass::update(Packet*, double)’:
queue/cbq.cc:873: error: ‘cbq_’ was not declared in this scope
queue/cbq.cc: In member function ‘int CBQClass::desc_with_demand()’:
queue/cbq.cc:928: error: ‘cbq_’ was not declared in this scope
queue/cbq.cc: In member function ‘void CBQClass::newallot(double)’:
queue/cbq.cc:975: error: ‘cbq_’ was not declared in this scope
queue/cbq.cc: In member function ‘virtual int CBQClass::command(int, const char* const*)’:
queue/cbq.cc:1002: error: ‘cbq_’ was not declared in this scope
make: *** [queue/cbq.o] Error 1
solution:$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/queue/cbq.cc
#define POWEROFTWO 16
+class CBQueue;
class CBQClass : public Connector {
問題(5)
./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
solution:$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/tora/tora_neighbor.h
#define __tora_neighbor_h__
+class toraAgent;
enum LinkStatus {
問題(6)
./diffusion3/filter_core/filter_core.hh:111: 錯誤:expected `)' before ‘*’ token
make: *** [diffusion3/ns/diffagent.o] 錯誤 1
solution:$gedit /usr/NS2/ns-allinone-2.27/ns-2.27/diffusion3/filter_core/filter_core.hh
class NeighborEntry;
+class DiffRoutingAgent;
typedef list<NeighborEntry *> NeighborList;
2) ns-2.29 安裝 (ps:解壓ns2.29,修改nam檔案夾中agent.h的73行,将null改為0)
問題(1) -I./asim/ -I./qs -I./diffserv -I./satellite -I./wpan -o trace/trace.o trace/trace.cc
./sctp/sctp.h:705: error: extra qualification 'SctpAgent::' on member 'DumpSendBuffer'
make: *** [trace/trace.o] Error 1
solution:将檔案ns2.29/sctp.h裡面第705行DumpSendBuffer函數前面的'SctpAgent::'去掉。
問題(2)
./mobile/god.h:88: error: extra qualification ‘vector::’ on member ‘operator=’
./mobile/god.h:93: error: extra qualification ‘vector::’ on member ‘operator+=’
./mobile/god.h:98: error: extra qualification ‘vector::’ on member ‘operator==’
./mobile/god.h:101: error: extra qualification ‘vector::’ on member ‘operator!=’
make: *** [src_rtg/sragent.o] Error 1
solution: 分别将這些檔案裡面的‘vector::'去掉。
問題(3)
dsr/dsragent.cc:828: error: ‘XmitFlowFailureCallback’ was not declared in this scope
dsr/dsragent.cc:1385: error: ‘XmitFailureCallback’ was not declared in this scope
dsr/dsragent.cc:1386: error: ‘XmitFlowFailureCallback’ was not declared in this scope
dsr/dsragent.cc:1403: error: ‘XmitFailureCallback’ was not declared in this scope
make: *** [dsr/dsragent.o] Error 1
solution:It is unclear to me which version of the code and compiler you are using. But it looks very similar to an error that I encountered with the CVS version and the latest gcc version. You should look into the file if you can find the missing function. In my case it was declared at the endof the file without a forward declaration. If so , you just need to move it to the beginning of the file or add an forward declaration for the function at the beginning.
$gedit /usr/NS2/ns-allinone-2.29/ns-2.29/dsr/dsragent.cc
+void XmitFlowFailureCallback(Packet *pkt, void *data); //+即增加,-即去掉
+void XmitFailureCallback(Packet *pkt, void *data);
/*===========================================================================
SendBuf management and helpers
問題(4)
diffusion/diffusion.cc:427: error:‘XmitFailedCallback’ was not declared in this scope
make: *** [diffusion/diffusion.o] error 1
solution:$gedit /usr/NS2/ns-allinone-2.29/ns-2.29/diffusion/diffusion.cc
#include "routing_table.h"
+void XmitFailedCallback(Packet *pkt, void *data);
char *MsgStr[]= {"", "INTEREST", "DATA", "DATA_READY", "DATA_REQUEST",
問題(5)
tcp/tcp-sack-rh.cc:68: 錯誤:有多餘的限定 ‘SackRHTcpAgent::’在成員 ‘newack’ 上
make: *** [tcp/tcp-sack-rh.o] 錯誤 1
solution:同問題(1)和(2)
問題(6)
pgm/pgm-agent.cc:307: 錯誤:有多餘的限定 ‘PgmAgent::’ 在成員 ‘trace_event’ 上
make: *** [pgm/pgm-agent.o] 錯誤 1
solution:同問題(1)
問題(7)
pgm/pgm-sender.cc:189: 錯誤:有多餘的限定 ‘PgmSender::’ 在成員 ‘trace_event’ 上
make: *** [pgm/pgm-sender.o] 錯誤 1
問題(8)
pgm/pgm-receiver.cc:186: 錯誤:有多餘的限定 ‘PgmReceiver::’在成員 ‘trace_event’ 上
make: *** [pgm/pgm-receiver.o] 錯誤 1
問題(9)
diffusion/omni_mcast.cc:367: 錯誤:‘OmniMcastXmitFailedCallback’在此作用域中尚未聲明
make: *** [diffusion/omni_mcast.o] 錯誤 1
solution:$gedit /usr/NS2/ns-allinone-2.29/ns-2.29/diffusion/omni_mcast.cc
#include "god.h"
+void OmniMcastXmitFailedCallback(Packet *pkt, void *data);
static class OmniMcastClass : public TclClass {
3) ns-2.31,2.33,2.34安裝
安裝很順利,推薦ing~~。
************以下轉自http://hi.baidu.com/jerry_916/blog/item/e0e7085516213d51d009065b.html**************************
問題 1 :
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;