title: What does exactly the warning mean about hidden symbol being referenced by DSO?
body: <p>I have a problem linking some shared library with g++. It gives me a warning like:</p>
  
  <pre><code>hidden symbol XXX in YYY is referenced by DSO /usr/lib/...
  </code></pre>
  
  <p>I've read some related questions about particular problems, but I want to understand it in a whole - what does this warning mean and what is a cause:</p>
  
  <ol>
  <li>What is DSO?</li>
  <li>What is a hidden symbol?</li>
  <li>How can it be referenced, if it's hidden?</li>
  </ol>