title: compilation of protobuf fails with D_GLIBCXX_USE_CXX11_ABI=0
body: <p>I am running ubuntu 16.04 with gcc.</p>
  
  <p>My <code>q.ccp</code> file is</p>
  
  <pre><code>#include &lt;google/protobuf/generated_message_util.h&gt;
  #include &lt;google/protobuf/repeated_field.h&gt;
  #include &lt;google/protobuf/extension_set.h&gt;
  #include &lt;google/protobuf/generated_message_reflection.h&gt;
  #include &lt;google/protobuf/generated_message_util.h&gt;
  #include &lt;google/protobuf/stubs/common.h&gt;
  #include &lt;google/protobuf/descriptor.h&gt;
  
  int main(int argc, char **argv)
  {
  
      google::protobuf::Message* msg;
  
  
      const google::protobuf::Descriptor* message_desc = msg-&gt;GetDescriptor();
  
  
      const google::protobuf::FieldDescriptor * fd_name = message_desc-&gt;FindFieldByName("name");
  
  
      return 0;
  }
  </code></pre>
  
  <p>command used for compilation:</p>
  
  <pre><code>g++ -D_GLIBCXX_USE_CXX11_ABI=0 q.cpp -L/usr/lib/x86_64-linux-gnu /usr/local/lib/libprotobuf.a -lpthread
  </code></pre>
  
  <p><code>protoc --version</code> returns: <code>2.2.0</code></p>
  
  <p>gcc --version</p>
  
  <pre><code>gcc (Ubuntu 4.8.5-4ubuntu2) 4.8.5
  Copyright (C) 2015 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  </code></pre>
  
  <p>compile error:</p>
  
  <pre><code>/tmp/cciGJPqq.o: In function `main':
  q.cpp:(.text+0x5f): undefined reference to `google::protobuf::Descriptor::FindFieldByName(std::string const&amp;) const'
  collect2: error: ld returned 1 exit status
  </code></pre>
  
  <p>But when I leave the <code>-D_GLIBCXX_USE_CXX11_ABI=0</code> option, I get no compile error. But the problem is that I running the executable on different system which require compilation with this option for the program to run. </p>