Большинство приложений (и библиотек), использующих OpenGL в Linux, загружают libGL.so
во время выполнения, используя dlopen
API, вместо динамического связывания с ним.
Почему они это делают?
Единственная причина, которую я могу себе представить, заключается в том, что любой поставщик графического драйвера предоставляет другой libGL
, а два разных libGL
могут быть несовместимы с ABI. (Ну, гм, почему они должны быть несовместимы с ABI? И даже если они есть, почему загрузка их через dlopen
решит эту проблему?)
В любом случае, предположив, что для этого есть веская причина, я бы тоже хотел это сделать. У кого-нибудь есть ссылка на код C / C ++ с открытым исходным кодом, который загружает все функции OpenGL через dlopen
, который я могу включить в свой проект, не требуя слишком много настроек?