首先聲明,本文《Ubuntu 9.10+NS2 2.33+附加gnuplot和gawk 安裝》非完全原創,通過收集一些網上資料,根據自己的實際操作體會進行的修改
1、首先是下載ns-allinone-2.33.tar.gz,地址為
下載在ISI官方即可很快的下載(針對教育網用戶)
jacob為我的用戶名,注意修改
cd /home/jacob
tar xvfz ns-allinone-2.33.tar.gz
2、安裝幾個需要使用的軟件包:
sudo apt-get install build-essential
sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev
sudo apt-get install libxmu-dev
3、然後可以進行安裝:
cd /home/yyang/ns-allinone-2.33.tar.gz
sudo ./install
然後看到命令行非常養眼地快速翻滾。在結束時突然報錯:
ld -shared -o libotcl.so otcl.o
otcl.o: In function `OTclDispatch':
/home/yyang/ns-allinone-2.33/otcl-1.13/otcl.c:495: undefined reference to `__stack_chk_fail_local'
otcl.o: In function `Otcl_Init':
/home/yyang/ns-allinone-2.33/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] 錯誤 1
otcl-1.13 make failed! Exiting ...
See http://www.isi.edu/nsnam/ns/ns-problems.html for problems
很奇怪的錯誤,於是上網找解決措施,在http://www.linuxidc.com/Linux/2010-03/25105.htm
發現解決辦法:
gcc 4.0版本以前是用ld -share來生成共享庫的,但是到了4.0以上的版本(我的為gcc version 4.4.1),這個命令改為了gcc -share即可
解決過程:
cd /home/yyang/ns-allinone-2.33/otcl-1.13
sudo gedit configure.in
把77行處的
SHLIB_LD="ld -shared"
改為
SHLIB_LD="gcc -shared"
保存退出,然後
sudo gedit configure
把5518行的
SHLIB_LD="ld -shared"
改為
SHLIB_LD="gcc -shared"
保存退出,然後
cd ..
回到目錄ns-allinone-2.33下運行
sudo ./install