在Linux上使用OpenGL的大多数应用程序(和库)在运行时都使用libGL.so
API加载dlopen
,而不是对其进行动态链接。
他们为什么这样做呢?
我能想象的唯一原因是因为任何图形驱动程序供应商都提供了不同的libGL
,并且两个不同的libGL
可能与ABI不兼容。 (嗯,哼,为什么它们应该与ABI不兼容?即使它们兼容,为什么还要通过dlopen
加载它们也可以解决此问题?)
无论如何,假设这样做有充分的理由,我也想这样做。是否有人链接到通过dlopen
加载所有OpenGL函数的开源C/C++代码,而我无需进行太多调整即可将其包含到我的项目中?
最佳答案
人们这样做的主要原因有两个:
关于c - OpenGL在Linux上: dlopen libGL.所以,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4186281/