title: OpenGL on Linux: dlopen libGL.so
body: <p>Most applications (and libraries) using OpenGL on Linux load <code>libGL.so</code> at runtime using <code>dlopen</code> API, instead of dynamically linking against it.</p>
  
  <p>Why do they do this?</p>
  
  <p>The only reason I can imagine is that it's because any graphic driver vendor provides a different <code>libGL</code>, and two different <code>libGL</code> could be ABI incompatible. (Well, hum, why should they be ABI incompatible? And even if they are, why loading them via <code>dlopen</code> would fix this issue?)</p>
  
  <p>Anyway, supposing there's a good reason for doing that, I'd like to do that as well. Does anybody have a link to an opensource C/C++ code that loads all the OpenGL functions via <code>dlopen</code>, which I can include to my project without needing too many tweaks?</p>