NS安装问题收集(2)
生活随笔
收集整理的這篇文章主要介紹了
NS安装问题收集(2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
安裝必須的軟件環境:
$ 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/menghaijunhenan@126/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 文件
重新打開一個終端,進行如下操作:
menghaijun@menghaijun-laptop:~$ 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/menghaijunhenan@126/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
grep 'system=MP-RAS-' */*/* -n
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;
$ 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/menghaijunhenan@126/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 文件
重新打開一個終端,進行如下操作:
menghaijun@menghaijun-laptop:~$ 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/menghaijunhenan@126/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
grep 'system=MP-RAS-' */*/* -n
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;
總結
以上是生活随笔為你收集整理的NS安装问题收集(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NS2安装错误系列(1)
- 下一篇: NS安装问题收集(3)