title: Working with lower version of GLIBC: version `GLIBC_2.11` not found (required by g++)
body: <p>I've installed GCC 7.1 on my machine and tried to use <code>g++</code> on it, but it didn't work, saying this:</p>
  
  <pre><code>g++: /lib64/libc.so.6: version `GLIBC_2.11` not found (required by g++)
  </code></pre>
  
  <p>So then I did these:</p>
  
  <pre><code> $ strings /lib64/lib.so.6 | grep GLIB
   GLIBC_2.2.5
   GLIBC_2.2.6
   GLIBC_2.3
   GLIBC_2.3.2
   GLIBC_2.3.3
   GLIBC_2.3.4
   GLIBC_2.4
   GLIBC_2.5
   GLIBC_PRIVATE
  
   $ strings `which g++` | grep GLIB
   GLIBC_2.3
   GLIBC_2.11
   GLIBC_2.2.5
  </code></pre>
  
  <p>Two things can be noted here:</p>
  
  <ul>
  <li>The string <code>GLIBC_2.11</code> isn't common to both of these outputs.</li>
  <li>However, <code>GLIBC_2.3</code> is common to both. </li>
  </ul>
  
  <p>Questions:</p>
  
  <p><strong>1.</strong> What exactly do these strings mean? Why are there more than one string in both of them? What do they tell us?</p>
  
  <p><strong>2.</strong> My <em>guess</em> is that the absence of <code>GLIBC_2.11</code> in <code>libc</code> explains why <code>g++</code> doesn't work, as <code>g++</code> requires it (as the error says itself). However, I'm confused what does the presence of <code>GLIBC_2.3</code> in both actually mean? Does it mean that <code>g++</code> can be instructed to use this instead of <code>GLIBC_2.11</code>? If so, how exactly? What is the command? </p>