La mayoría de las aplicaciones (y bibliotecas) que usan OpenGL en Linux cargan libGL.so
en tiempo de ejecución usando la API dlopen
, en lugar de enlazar dinámicamente con ella.OpenGL en Linux: dlopen libGL.so
¿Por qué lo hacen?
La única razón que me puedo imaginar es que es porque cualquier proveedor de controladores gráficos proporciona un libGL
diferente, y dos libGL
diferentes podrían ser incompatibles ABI. (Bueno, hum, ¿por qué deberían ser ABI incompatibles? E incluso si lo son, ¿por qué cargarlos a través de dlopen
solucionaría este problema?)
De todos modos, suponiendo que haya una buena razón para hacerlo, me gustaría hacer eso tambien. ¿Alguien tiene un enlace a un código C/C++ de código abierto que carga todas las funciones OpenGL a través del dlopen
, que puedo incluir en mi proyecto sin necesidad de demasiados ajustes?
"* La mayoría de las aplicaciones (y bibliotecas) que usan OpenGL en Linux cargan libGL.so en tiempo de ejecución usando dlopen *", esa afirmación no es del todo cierta, especialmente para juegos de código abierto GL-only. – user502515