title: C++, error: '__locale_t' has not been declared
body: <p>I'm new to C++, I got <code>error: '__locale_t' has not been declared</code> when I included some header files, like <code>#include "ruby.h"</code> , <code>#include &lt;string.h&gt;</code> and so on, but there's no problem for <code>#include &lt;stdio.h&gt;</code>, I'm using eclipse under Linux, the detailed error for <code>#include "ruby.h"</code> and <code>#include &lt;string.h&gt;</code> is:</p>
  
  <pre><code>/usr/include/string.h:548: error: '__locale_t' has not been declared
  /usr/include/string.h:549: error: nonnull argument references non-pointer operand (argument 1, operand 3)
  /usr/include/string.h:552: error: '__locale_t' has not been declared
  /usr/include/string.h:553: error: nonnull argument references non-pointer operand (argument 1, operand 4)
  </code></pre>
  
  <p>The order of the include is:</p>
  
  <pre><code>#include "Abc.h"
  
  #include &lt;string.h&gt;
  #include "ruby.h"
  #include &lt;stdio.h&gt;
  </code></pre>
  
  <p>Where <code>Abc</code> is the class name.</p>
  
  <p>This is the <code>Abc</code> class, nothing added except the <code>include</code>:</p>
  
  <pre><code>#include "Abc.h"
  #include &lt;stdio.h&gt;
  #include &lt;string.h&gt;
  #include "ruby.h"
  
  #include "ose_gw.h"
  
  namespace a {
  
  Abc::Abc() {
      // TODO Auto-generated constructor stub
  }
  
  Abc::~Abc() {
      // TODO Auto-generated destructor stub
  }
  
  } /* namespace a */
  </code></pre>