gpt4 book ai didi

c - Linux 上的 OpenGL : dlopen libGL. 所以

转载 作者:IT王子 更新时间:2023-10-29 00:11:10 26 4
gpt4 key购买 nike

大多数在 Linux 上使用 OpenGL 的应用程序(和库)在运行时使用 dlopen API 加载 libGL.so,而不是动态链接它。

他们为什么要这样做?

我能想到的唯一原因是因为任何图形驱动程序供应商都提供不同的libGL,而两个不同的libGL 可能是ABI 不兼容的。 (好吧,嗯,为什么它们应该是 ABI 不兼容的?即使它们是,为什么通过 dlopen 加载它们会解决这个问题?)

无论如何,如果有充分的理由这样做,我也愿意这样做。有没有人有通过 dlopen 加载所有 OpenGL 函数的开源 C/C++ 代码的链接,我可以将其包含到我的项目中而无需太多调整?

最佳答案

人们这样做的主要原因有两个:

  1. 对于没有 OpenGL 的系统,您可以给出一个合理的错误
  2. 供应商提供许多不同的扩展,并且在每个供应商没有不同二进制文件的情况下支持多组扩展的唯一明智的方法是使用 dlsym 来检查它们。 GLEW不过,为您提供了一种很好的方法。

关于c - Linux 上的 OpenGL : dlopen libGL. 所以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4186281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com