NS2安装笔记 - NS2.34 Under Ubuntu9.10

参考书推荐:《NS与网络模拟》 - 徐雷鸣等

1. NS2下载

   官网提供最新版本的下载: http://www.isi.edu/nsnam/ns/ , 我下载的版本是NS2.34, 下载的文件为ns-allinone-2.34.tar.gz 。

   下载完后将它解压缩到主文件夹下(我的是 /home/yanna):

   tar xvfz ns-allinone-2.34.tar.gz

 

2. 需要用到的软件包

   build-essential

   tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev

   libxmu-dev

 

3. 安装

   cd /home/yanna/ns-allinone-2.34

   sudo ./install

 

4. 出错处理

 

ld -shared -o libotcl.so otcl.o
otcl.o: In function `OTclDispatch':
/home/yanna/ns-allinone-2.34/otcl-1.13/otcl.c:495: undefined reference to `__stack_chk_fail_local'
otcl.o: In function `Otcl_Init':
/home/yanna/ns-allinone-2.34/otcl-1.13/otcl.c:2284: undefined reference to `__stack_chk_fail_local'
ld: libotcl.so: hidden symbol `__stack_chk_fail_local' isn't defined
ld: final link failed: Nonrepresentable section on output
make: *** [libotcl.so] 错误 1cd ns-2.34; ./validate
otcl-1.13 make failed! Exiting ...
See http://www.isi.edu/nsnam/ns/ns-problems.html for problems

 

   在官网上有解决方案,应该是个BUG,会在以后版本中解决:

 

For  Ubuntu 9.10  (karmic), you may  encounter this error  in the linking of otcl:

otcl.o: In function `OTclDispatch':
/home/ns/ns-allinone-2.34/otcl/otcl.c:495: undefined reference to `__stack_chk_fail_local'
otcl.o: In function `Otcl_Init':
/home/ns/ns-allinone-2.34/otcl/otcl.c:2284: undefined reference to `__stack_chk_fail_local'
ld: libotcl.so: hidden symbol `__stack_chk_fail_local' isn't defined
ld: final link failed: Nonrepresentable section on output
make: *** [libotcl.so] Error 1

This error is because the linker being used is "ld -shared" instead of "gcc -shared". 
If you edit one line in otcl-1.13/configure, and rerun install , it should work:

--- configure.orig 2009-11-02 12:14:52.556167945 -0800
+++ configure 2009-11-02 12:17:28.966706099 -0800
@@ -6301,7 +6301,7 @@
;;
Linux*)
SHLIB_CFLAGS="-fpic"
- SHLIB_LD="ld -shared"
+ SHLIB_LD="gcc -shared"
SHLIB_SUFFIX=".so"
DL_LIBS="-ldl"
SHLD_FLAGS=""

This will be fixed in future revisions of ns-2. 

   改完后重新安装。
5. 配置环境变量
   安装完成后会看到修改环境变量的提示:
Please put /home/yanna/ns-allinone-2.34/bin:/home/yanna/ns-allinone-2.34/tcl8.4.18/unix:/home/yanna/ns-allinone-2.34/tk8.4.18/unix
into your PATH environment; so that you'll be able to run itm/tclsh/wish/xgraph.

IMPORTANT NOTICES:

(1) You MUST put /home/yanna/ns-allinone-2.34/otcl-1.13, /home/yanna/ns-allinone-2.34/lib,
    into your LD_LIBRARY_PATH environment variable.
    If it complains about X libraries, add path to your X libraries
    into LD_LIBRARY_PATH.
    If you are using csh, you can set it like:
        setenv LD_LIBRARY_PATH <paths>
    If you are using sh, you can set it like:
        export LD_LIBRARY_PATH=<paths>

(2) You MUST put /home/yanna/ns-allinone-2.34/tcl8.4.18/library into your TCL_LIBRARY environmental
    variable. Otherwise ns/nam will complain during startup.


After these steps, you can now run the ns validation suite with
cd ns-2.34; ./validate

For trouble shooting, please first read ns problems page
http://www.isi.edu/nsnam/ns/ns-problems.html. Also search the ns mailing list archive
for related posts .
   回到主文件夹,修改bash配置文件.bashrc:
   sudo gedit .bashrc
   在文件最后加上:

PATH="$PATH:/home/yanna/ns-allinone-2.34/bin:/home/yanna/ns-allinone-2.34/tcl8.4.18/unix:/home/yanna/ns-allinone-2.34/tk8.4.18/unix"

LD_LIBRARY_PATH="/home/yanna/ns-allinone-2.34/otcl-1.13:/home/yanna/ns-allinone-2.34/lib"

TCL_LIBRARY="$TCL_LIBRARY:/home/yanna/ns-allinone-2.34/tcl8.4.18/library"
6. 安装验证
   安装结束后的提示中也告诉我们如何验证是否正确安装:
   cd ns-2.34
   ./validate
   另外,也可以打开一个新终端进行试运行:
   输入ns,如果显示一个%则说明已正确安装。如果提示“command not found”则重新启动试试。
   

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值