title: What is causing ld: duplicate symbol
body: <p>ld: duplicate symbol StringFunctions::intToString(int) in </p>
  
  <pre><code>/Build/Intermediates/Y36PJC-mrvikmil.build/Debug/Y36PJC-mrvikmil.build/Objects-normal/x86_64/ServerSocket.o and 
  /Build/Intermediates/Y36PJC-mrvikmil.build/Debug/Y36PJC-mrvikmil.build/Objects-normal/x86_64/main.o 
  </code></pre>
  
  <p>for architecture x86_64</p>
  
  <p>function <em>StringFunctions::intToString(int)</em> is in <strong>StringFunctions.h</strong></p>
  
  <p>includes from <strong>main.cpp</strong>:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  #include "Exception.h" //does not include anything more
  #include "ServerConsole.h"
      /* 
         which includes ServerSocket.h which includes ClientSocket.h which includes StringFunctions.h
         AND
         ServerSocket.h includes SocketException.h which includes StringFunctions.h
      */
  </code></pre>
  
  <p>includes from <strong>ServerSocket.cpp</strong>:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  #include "InvalidPortException.h" //does not include anything more
  #include "SocketException.h" //which includes StringFunctions.h
  #include "ClientSocket.h"    //which includes SocketException.h which includes StringFunctions.h
  #include "StringFunctions.h" //StringFunctions.h
  
  #include &lt;sys/types.h&gt;
  #include &lt;sys/socket.h&gt;
  #include &lt;netdb.h&gt;
  #include &lt;errno.h&gt;
  </code></pre>
  
  <p>I believe that as long as i have things in .h files, i can include pretty much anything anywhere...</p>
  
  <p>All my files has include guard (#ifndef ... #define ...)</p>
  
  <p>Please help.</p>