i wrote this tutorial because official ns installation problems website actually return a blank useless page. all the credits goes to nsnam.isi.edu people.
the googled cache copy of the page is here.
WARNING: apply point 3-4 only if you noticed the error while installing ns-allinone-2.34 the first time.
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
otcl-1.13 has some compatibility issues with latest g++ (>=4.4) but ns-allinone-2.34 need it.
all you have to do to fix issues and make a successfull installation is:
0)
sudo apt-get install build-essential autoconf automake libxmu-dev
1) extract ns-allinone wherever you want. open directory, go to otcl-1.13.
2) open configure file (the one without extension)
3) search for:
Linux*) SHLIB_CFLAGS="-fpic" SHLIB_LD="ld -shared" SHLIB_SUFFIX=".so" DL_LIBS="-ldl" SHLD_FLAGS="" ;;
and replace it with
Linux*) SHLIB_CFLAGS="-fpic" SHLIB_LD="gcc -shared" SHLIB_SUFFIX=".so" DL_LIBS="-ldl" SHLD_FLAGS="" ;;
4) save configure file
5) go back to ns-allinone-2.34 main directory and launch install.
6) remember to add to your .bash file (hided inside your home directory) with path variables. here there are mine for example
# LD_LIBRARY_PATH OTCL_LIB=/home/lotti/Scrivania/ns/ns-allinone-2.34/otcl-1.13 NS2_LIB=/home/lotti/Scrivania/ns/ns-allinone-2.34/lib X11_LIB=/usr/X11R6/lib USR_LOCAL_LIB=/usr/local/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB # TCL_LIBRARY TCL_LIB=/home/lotti/Scrivania/ns/ns-allinone-2.34/tcl8.4.18/library USR_LIB=/usr/lib export TCL_LIBRARY=$TCL_LIB:$USR_LIB # PATH XGRAPH=/home/lotti/Scrivania/ns/ns-allinone-2.34/bin:/home/lotti/Scrivania/ns/ns-allinone-2.34/tcl8.4.18/unix:/home/lotti/Scrivania/ns/ns-allinone-2.34/tk8.4.18/unix NS=/home/lotti/Scrivania/ns/ns-allinone-2.34/ns-2.34/ NAM=/home/lotti/Scrivania/ns/ns-allinone-2.34/nam-1.13/ PATH=$PATH:$XGRAPH:$NS:$NAM
7) test it: close actual terminal and open a new one (to reload changed .bash file) and type “ns”. if a % appear, your actually on ns2 console.
Finish!
Pingback: Install ns-allinone-2.34 on ubuntu 9.10 | Lotti's DevLog Ubuntu Netbook
I have the problem with installation the moment the run the comenad make:
make[1]: No se hace nada para `all-am’.
make[1]: se sale del directorio `/home/nsmiracle-1.2.2/trunk/main’
Please help me
Thanks
please trasnslate in english the console errors and tell me if you’re trying to install NS or NSMIRACLE
@Lotti
Excuse my problem is with installing nsmiracle, some examples do not compile (sample1, sample2, etc).
make [1]: Nothing to be done for `all-am ‘.
make [1]: Leaving directory `/ home/nsmiracle-1.2.2/trunk/main ‘
I will simulate 802.11 with multiple channel-multiple interface, is it possible with nsmiracle?
Thank you very much for your time.
you didn’t have to compile examples with “make” but you have to run them with ns..
try typing “ns sample1.tcl” inside the directory where sample1.tcl is.
for the second question, i don’t know. try to ask it on the official mailing list
I know the commands. My question is I have problems when installing with the command make.
Some examples compile but not run the samples folder
root@jimmy-laptop:/home/ns-allinone-2.34/nsmiracle/main/samples/sample1# ns sample1.tcl
couldn’t load file “../../sandbox/.libs/libMiracleSandbox.so.0.0.0”: ../../sandbox/.libs/libMiracleSandbox.so.0.0.0: cannot open shared object file: No such file or directory
while executing
“load ../../sandbox/.libs/libMiracleSandbox.so.0.0.0”
(file “sample1.tcl” line 41
I do not have the library installed sandbox and neither can I do for synaptic
did you compile the sandbox library?
you have to run autogen + configure + make, but not make install.
actually i’m at office, this evening i will post console commands to do this (just “configure” command deserve an explatanation).
./autogen.sh
./configure –with-ns-allinone=path/to/ns-allinone-2.34 –with-nsmiracle=path/to/nsmiracle
make
Sir Thank you for your reply. I have installed ns-2.35 and as per the installation procedure of nsmiracle I have installed it. But I am not able to find the path for libMiracleSandbox.so.0.0.0 even after adding addons folder to nsmiracle and following 3 steps autogen + configure + make. So can you suggest me how should I proceed. Thank you.
Assure you have moved the addon directory inside nsmiracle folder in this way:
nsmiracle/
and not
nsmiracle/addons/
I didn’t write a clear point, that time.
1) extract ns-allinone wherever you want. open directory, go to otcl-1.13.
2) open configure file (the one without extension)
3) search for:
and replace it with
Linux*)
SHLIB_CFLAGS="-fpic"
SHLIB_LD="gcc -shared"
SHLIB_SUFFIX=".so"
DL_LIBS="-ldl"
SHLD_FLAGS=""
;;
4) save configure file
but i got error
./configure: line 6307: syntax error near unexpected token `;’
./configure: line 6307: ` SHLD_FLAGS=""’
otcl-1.13 configuration failed! Exiting …
I replaced
Linux*)
SHLIB_CFLAGS=”-fpic”
SHLIB_LD=”gcc -shared”
SHLIB_SUFFIX=”.so”
DL_LIBS=”-ldl”
SHLD_FLAGS=””
;;
with
Linux*)
SHLIB_CFLAGS="-fpic"
SHLIB_LD="gcc -shared"
SHLIB_SUFFIX=".so"
DL_LIBS="-ldl"
SHLD_FLAGS=""
;;
Sorry
I just copied wrong. No need to publish these comments.