Die meisten Anwendungen (und Bibliotheken), die OpenGL unter Linux verwenden, laden zur Laufzeit unter Verwendung der API dlopen
, anstatt dynamisch dagegen zu verlinken.OpenGL unter Linux: dlopen libGL.so
Warum machen sie das?
Der einzige Grund, den ich mir vorstellen kann ist, dass es weil jeder Grafiktreiber-Hersteller eine andere libGL
bietet, und zwei verschiedene libGL
könnte ABI inkompatibel sein. (Nun, brumm, warum sollten sie ABI-inkompatibel sein? Und selbst wenn sie das sind, warum würde das Laden dieses Problems behoben werden?)
Egal, es gibt einen guten Grund, dies zu tun, würde ich gerne tun das auch. Hat jemand einen Link zu einem Open Source C/C++ - Code, der alle OpenGL-Funktionen über dlopen
lädt, die ich zu meinem Projekt hinzufügen kann, ohne zu viele Tweaks zu benötigen?
"* Die meisten Anwendungen (und Bibliotheken), die OpenGL unter Linux verwenden, laden libGL.so zur Laufzeit mit dlopen *", diese Aussage ist nicht ganz richtig, besonders für Open-Source-Nur-GL-Spiele. – user502515