multiple definition of namespace variable, C++ compilation
<p>I m writing a simple Makefile which looks like this</p>

<pre><code>CC=gcc
CXX=g++
DEBUG=-g
COMPILER=${CXX}
a.out: main.cpp Mail.o trie.o Spambin.o
        ${COMPILER}  ${DEBUG} main.cpp Mail.o trie.o Re2/obj/so/libre2.so

trie.o: trie.cpp
        ${COMPILER}  ${DEBUG} -c trie.cpp

Mail.o: Mail.cpp
        ${COMPILER} ${DEBUG} -c Mail.cpp

Spambin.o: Spambin.cpp
        ${COMPILER} ${DEBUG} -c Spambin.cpp

clean: 
        rm -f *.o
</code></pre>

<p>I have a file name config.h which is required in <code>Mail.cpp</code> and <code>Spambin.cpp</code>, so I have 
<code>#include "config.h"</code> in both <code>Mail.cpp</code> and <code>Spambin.cpp</code>. <code>config.h</code> looks like this:</p>

<pre><code>#ifndef __DEFINE_H__
#define __DEFINE_H__

#include&lt;iostream&gt;

namespace config{
        int On = 1;
        int Off = 0;

        double S = 1.0;
}
#endif
</code></pre>

<hr>

<pre><code>But when I try to compile the code it gives me
Mail.o:(.data+0x8): multiple definition of `config::On'
/tmp/ccgaS6Bh.o:(.data+0x8): first defined here
Mail.o:(.data+0x10): multiple definition of `config::Off'
/tmp/ccgaS6Bh.o:(.data+0x10): first defined here
</code></pre>

<p>Can any one help me debug this?</p>
