title: variable has internal linkage but is not defined
body: <p>I have this .h file:</p>
  
  <pre><code>namespace{
  
  class Invariant{
  public:
    Invariant(z3::expr e,Instruction *i):Expr(e),I(i){
      DenseMap&lt;Instruction*,Invariant*&gt; FunMap = Invariants[F];
    }
  
  private:
    //static map
    static DenseMap&lt;Function*, DenseMap&lt;Instruction*,Invariant*&gt; &gt;Invariants;
  
  };
  }//end of anonymous namespace
  </code></pre>
  
  <p>When I compile clang says:</p>
  
  <pre><code>Invariant.h:46:65: warning: variable '&lt;anonymous namespace&gt;::Invariant::Invariants' has internal linkage but is not defined
    static DenseMap&lt;Function*, DenseMap&lt;Instruction*,Invariant*&gt; &gt;Invariants;
                                                                  ^
  Invariant.h:26:48: note: used here
      DenseMap&lt;Instruction*,Invariant*&gt; FunMap = Invariants[F];
  </code></pre>
  
  <p>What's the problem here?</p>