【问题标题】:How do I find the glx library name?如何找到 glx 库名称?
【发布时间】:2015-05-10 13:46:13
【问题描述】:

我正在尝试使用 glX 函数 (glXSwapIntervalMESA()) 但编译器返回未定义的引用错误。

我已经尝试与X11Xextglx 链接,尽管最后一个库显然不存在。 libGL includes some entry points 用于 glx,但我猜其他人(例如我正在尝试使用的那个)是平台相关的*。

我找不到任何地方,但它会告诉我如何找到这些平台相关库的名称。对于给定的系统,如何确定链接器设置以使用 glx?

(*我会猜到这是因为我看到了带有奇怪库名称的示例链接器设置。)

【问题讨论】:

  • 这是一个你需要动态加载的扩展。
  • 我不确定 nvidia 驱动程序是否提供此功能,如果没有,请尝试 glXSwapIntervalEXTglXSwapIntervalSGI。注意@RichardCritten 说,你需要手动“加载”函数(有一个本地函数指针指向它)像yourfuncname = glXGetProcAddress("glXSwapIntervalSGI"); (不要忘记提供与你的函数相对应的yourfuncname 的正确声明正在加载。)
  • 谢谢,我完全错过了! glxinfo 表示支持该功能,因此我将尝试以这种方式使用它。如果您将其添加为答案,我将接受。或者,如果您认为问题中的错误太大而无法使用,请投反对票,我将删除。由于不正确的假设我不想添加到这个主题上,已经有 2-3 个人没用了!

标签: c++ opengl nvidia centos6 glx


【解决方案1】:

您要使用的函数是扩展函数,您需要将其动态加载到函数指针。我建议使用任何可用的扩展加载程序库(glew、gl3w、glad...)来帮助简化此过程。或者,考虑使用 SDL 等更高级别的库,它会为您处理很多事情,在这种情况下应该包括交换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多