Skip to main content

Installation of Network Simulator (NS2.35) in Mac OS

Installing NS2 in Mac OS is always a tougher task. Setting and configuring so many config files, etc.
But the latest version of NS2 (ns-2.35) is easily installing under Mac OS

OS Taken here is Mac OS 10.6 (Snow Leopard)
NS Version is ns-2.35 RC8

Prerequisites: Mac OS should be installed with the developer pacakge called xcode
with the help of Xcode only, all development modules can be handled.

So, the first step is to install the xcode, Download Xcode from this link

Download the ns-allinone-2.35 rc8 for installation, Download from

1. Install Xcode
2. Unzip or untar ns-2.35 using the command "tar zxvf ns-allinone-2.35-xxx.tar.gz" (without quotes)
3. The ns-2.35 configuration files contains  the path to xlibdir and xincdir, so you need not include the path for those directories.
4. kindly ensure that the path to xlibdir and xincdir are installed on your Mac OS(Xcode)
5. execute the command ./install inside the directory (~ns-allinone-2.35-xxx/) (use terminal to install) .
6. Once installed successfully, the path setting information will be provided to you. copy those informations and put it in a file called .profile or .bash_profile (please note that there is a dot in these files)

in my case, this is the path information (include the following line in the .profile file)

export PATH=$PATH:/Users/VIT/Downloads/ns-allinone-2.35-RC8/bin:/Users/VIT/Downloads/ns-allinone-2.35-RC8/tcl8.5.8/unix:/Users/VIT/Downloads/ns-allinone-2.35-RC8/tk8.5.8/unix

and also one more path called LD_LIBRARY_PATH
export LD_LIBRARY_PATH= <paths>

7. finally execute the command "source .profile" (wihtout quotes) and logout and login back.

open the terminal and type ns (you will get a % symbol indicates that the ns2 is installed successfully)
type nam and you can see a animation window is popping out.
(thats it)

if you want to install ns2.34 and earlier versions in Mac OS, then the above method will not be suitable for you. you need to include the
xlibdir and xincdir path in all the config files of ns2
and then proceed with the above steps..


  1. Hi,
    I am trying to install ns2-allinone-2.35-rc8 on a mac 10.6 but i get hte following error any helpwould be really appreciated. Thanks in advance

    * Build OTcl-1.14
    ~~~~~~~some more lines here ~~~~~~~~~
    gcc -o otclsh -g -O2 -I. -I/theDev/ns-allinone-2.35/include -I/theDev/ns-allinone-2.35/include -I/theDev/ns-allinone-2.35/include -I/include otclAppInit.c \
    -L. -lotcl -L/theDev/ns-allinone-2.35/lib -ltk8.5 -L/theDev/ns-allinone-2.35/lib -ltcl8.5 -L/usr/X11R6/lib -lXext -lX11 -lm
    Undefined symbols for architecture x86_64:

    ~~~~~~~some more lines here ~~~~~~~~~
    ld: symbol(s) not found for architecture x86_64
    collect2: ld returned 1 exit status
    make: *** [otclsh] Error 1
    otcl-1.14 make failed! Exiting .

  2. I was not worked on Mac OS before, but i tried the first time and i succeeded in installing ns2.35. anyway i look into it.

  3. I have the same problem with UpStreamSwimmer,and I can not find the solution...

  4. i Tried again in Mac OS Lion, it was installed successfully....

    1. Hello,

      I try to install "ns-allinone-2.35" on MacOS lion but when I run ./install and it fails to build OTcl-1.14, as you can see below:

      * Build OTcl-1.14
      No .configure file found in current directory
      Continuing with default options...
      checking build system type... i386-apple-darwin11.3.0
      "___CFConstantStringClassReference", referenced from:
      CFString in libtcl8.5.a(tclMacOSXNotify.o)
      CFString in libtcl8.5.a(tclMacOSXBundle.o)
      CFString in libtcl8.5.a(tclMacOSXBundle.o)
      ld: symbol(s) not found for architecture x86_64
      collect2: ld returned 1 exit status
      make: *** [otclsh] Error 1
      otcl-1.14 make failed! Exiting ...
      See for problems

      Do you know how can I solve this problem, please?
      Best Regards,

    2. hi friends,

      you have to make changes in the .install file, until unless we will get the error like this...

      totally four changes we have to do in the ./install file.


  5. I as well have the same problem and UpStreamSwimmer and Bency Lin... any update? using Os X 10.7

  6. me to have the same problem
    ld: symbol(s) not found for architecture x86_64
    any help i use mac os 10.7

    1. Hello Ahmed,

      I have exactly the same problem as you. Would you please let me know how you solved this problem?

    2. You just need to download the patch from here
      cd ns-allinone-2.35
      patch -p1 -i install.osx.patch
      And continue with the guide.


Post a Comment

Popular posts from this blog

Installation of ns2 in Ubuntu 18.04 - NS2 Tutorial # 2

ns2 installation in Ubuntu 18.04

Unlike earlier version of ubuntu, the 18,04 version does not support the direct installation of ns2, because of the latest C/C++ compiler (7.x), but the latest C/C++ compiler supported by ns2 is gcc-4.8. So this post and video tells you about the installation of gcc-4.8 version, then ns2 and then configuration.
Here are the steps, Please follow the video given below for more information.

$] tar zxvf ns-allinone-2.35.tar.gz

$] sudo apt install gcc-4.8 g++-4.8

if you have installed ubuntu just now, you can try these commands also in the beginning

$] sudo apt update
$] sudo apt install build-essential autoconf automake libxmu-dev

$] cd ns-allinone-2.35/ns-2.35
$] gedit
$] gedit linkstate/ls.h

line number 137, change erase to this->erase
$] cd ..
$] ./install

export PATH=$PATH:/home/pradeepkumar/ns-allinone-2.35/bin:/home/pradeepkumar/ns-allinone-2.35/tcl8.5.10/unix:/home/pradeepkumar/ns-allinone-2.35/tk8.5.10/unix

ns3 installation in Ubuntu 16.04

This post serves the installation instructions of ns3 in ubuntu 16.04 version. Some of my students are working in ns3, this post will benefit them in installing ns3.

OS Used: Ubuntu 16.04.4
ns3 version: ns3 version 3.27

The same procedure will be applied for OS like Debian, Linux Mint.

Fresh installation of Ubuntu 16.04 Let you try the fresh installation of ubuntu in your hard disk along with windows.
Installation of ns3 dependencies ns3 needs so many dependencies, developmental libraries, drivers, etc. so install all those
$] sudo apt update  $] sudo apt upgrade
$] sudo apt-get install build-essential autoconf automake libxmu-dev python-pygoocanvas python-pygraphviz cvs mercurial bzr git cmake p7zip-full python-matplotlib python-tk python-dev python-kiwi python-gnome2 python-gnome2-desktop-dev python-rsvg qt4-dev-tools qt4-qmake qt4-qmake qt4-default gnuplot-x11 wireshark
The above command make take some time to download, compile and install it, Be Patient. 
Installing ns3 Download the…

AWK Scripts for NS2 to process data from Trace Files

AWK Scripts are very good in processing the data from the log (trace files) which we get from NS2. If you want to process the trace file manually, here is the detailHere is a sample of trace file from NS2 (However ns2 supports a new type of trace file also), but this post will make you understand the old trace format only.r 0.030085562 _0_ MAC  --- 0 message 32 [0 ffffffff 1 800] ------- [1:255 -1:255 32 0] r 0.030110562 _0_ RTR  --- 0 message 32 [0 ffffffff 1 800] ------- [1:255 -1:255 32 0] s 1.119926192 _0_ RTR  --- 1 message 32 [0 0 0 0] ------- [0:255 -1:255 32 0]
AWK Scripts are very good in processing the data column wise. For example
the first column in the above trace file represents r, s which indicates receive, sent respectively. If we want to trace the entire r and s alone from this trace file we can represent it as $1
$1 represents ACTION
$2 Time
$3 Node ID
$4 Layer
$5 Flags
$6 seqno
$7 type
$8 Size
$14 Energy (if the network nodes includes EnergyModel)To run the awk script in Li…