1. 程式人生 > >windows系統下NS2.35安裝

windows系統下NS2.35安裝

windows系統下安裝cugwin與NS2.35

將自己安裝NS2.35系統的經歷與步驟記錄下來,常常總結學到的才會記住。
因為之前從沒有接受過NS2.35,身邊也沒有直接可以來幫忙的人,搗鼓了很多版本。從最開始配套較低版本的教材經驗開始,最後確定安裝最新版本。前面眾多不成功的嘗試不再贅述:
2.35的安裝參考了兩個博文:
http://blog.sina.com.cn/s/blog_579879b90100wz8x.html
http://blog.163.com/freedom_lover/blog/static/20282403120130692623930/
在原文的基礎上,我將敘述我的安裝錯誤與解決辦法:
一、安裝cygwin
之前下載過不成功的首先解除安裝,執行setup-x86.exe,到安裝包選擇是點'All'右側'install'為'unstall',還有一些登錄檔,壓縮包等,保險起見,用搜索搜到後全部刪除,乾淨的重新來安裝一遍。

2. 執行setup.exe。選擇Install from Internet,然後選擇一個代理,不要直接連。代理的話如果選國內的映象會快一點,不過國外的也是可以的。 建議安裝如下的包(點相應包的skip即可):gcc   gcc-g++  gcc4   gcc4-g++   gawk   gnuplot   gzip   make   patch   perl   tar  
w32api   diffutils
X-startup-scripts   xorg-x11-base   xorg-x11-bin   xorg-x11-devel   xorg-x11-bin-dlls  
xorg-x11-bin-lndir xorg-x11-etc   xorg-x11-fenc   xorg-x11-fnts   xorg-x11-libs-data  
xorg-x11-xwin   libxt-devel   libXmu-devel

前面的gcc4,gcc4-g++是編譯器,務必要安裝,其他版本沒有它也許可以安裝,但NS2.35安裝不起來,make,patch都是常用的必備的包,後面x開頭的都是圖形介面相關的包。
PS:"hide"打鉤,能夠找到隱藏的目錄,gcc4,gcc4-g++可以找到;上述檔案一定全部選齊。
PS:點選'view'按鈕,將從'category'顯示目錄變為'full'顯示全部安裝包,逐一尋找以上所述。

3.cygwin下載完這些包以後會自動安裝,只需耐心地等待它安裝完成。這個過程可能會花一個小時左右。

二、安裝NS

1.在下列網站上下載ns2-allinone-2.35.tar.gz安裝包。

2.將ns2-allinone-2.35.tar.gz拷貝放入cygwin使用者目錄下,例如:C:\cygwin\home\使用者名稱

3.執行cygwin,命令列下輸入tar xvfz ns2-allinone-2.35.tar.gz。這個命令是解壓縮命令,實際上直接用winrar解壓縮以後放到目錄下也是可以的。

4.進入ns2-allinone-2.35目錄(命令為cd ns2-allinone-2.35),執行(輸入命令)./install開始安裝。這一步實際上是在編譯ns、nam等相關的部分,可能需要2小時左右,和電腦的效能有關係,但在windows下肯定不會太快。
PS:第一次安裝出現錯誤linkstate錯誤,具體如下:
In file included from linkstate/ls.cc:67:0:
linkstate/ls.h: In instantiation of ‘void LsMap::eraseAll() [with Key = int; T = LsIdSeq]’:
linkstate/ls.cc:396:28: required from here
linkstate/ls.h:137:20: error: ‘erase’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
linkstate/ls.h:137:20: note: declarations in dependent base ‘std::map, std::allocator > >’ are not found by unqualified lookup
linkstate/ls.h:137:20: note: use ‘this->erase’ instead
make: *** [linkstate/ls.o] Error 1
Ns make failed!
解決辦法:
修改ls檔案:
ns-2.35/linkstate/ls.h  第137行
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
改為:
void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
然後重新 ./install

5.安裝結束後,會提示設定PATH, LD_LIBRARY_PATH, TCL_LIBRARY等環境變數的內容,可在使用者目錄下修改.bashrc檔案,在檔案末尾新增以下內容:

export PATH=/home/tracy/ns-allinone-2.35/bin:/home/使用者名稱/ns-allinone-2.35/tcl8.5.10/unix:/home/使用者名稱/ns-allinone-2.35/tk8.5.10/unix:$PATH

export LD_LIBRARY_PATH=/home/使用者名稱/ns-allinone-2.35/otcl-1.14:/home/使用者名稱/ns-allinone-2.35/lib:$LD_LIBRARY_PATH

export TCL_LIBRARY=/home/使用者名稱/ns-allinone-2.35/tcl8.5.10/library:$TCL_LIBRARY


注意:建議用ultraedit等軟體開啟編輯,不要用記事本(會轉換為dos格式),儲存的時候保持unix格式,不要轉化成dos或者其他格式,否則系統無法識別。
PS:用UE開啟以後直接貼上複製以上內容到最末即可;不需新增#,統一格式。
設定好環境變數後關閉cygwin視窗,再重新開啟。然後輸入ns,如果出現%,則表示環境變數修改成功,否則就是修改有問題。

6.進入~/ns-allinone-2.35/ns-2.35目錄,可執行./validate進行驗證(可省略)。耗時很久2小時左右。