我需要在linux系统上动态加载openGL函数。问题在于,当我这样做时,glXCreateContextAttribsARB在尝试创建gl上下文时失败,并且程序回退到使用OGL 1.4。它应该在OGL 4.4上。如果我只使用共享库并进行常规链接,则代码可以完美运行。因此使用我没有看到的动态加载的lib存在一些问题。这些函数正在使用dlopen / dlsym加载,并且没有报告任何错误。我尝试使用glxGetProcAddressARB加载glXCreateContextAttribsARB,但它没有区别。我很难过。有什么建议吗?
Ubuntu 12.04LTS / GLX 1.4 / OGL 4.4 / Nvidia 331.62
答案 0 :(得分:0)
我发现了问题。由于某种原因,代码试图使用不兼容的视觉(24位FB而不是32位)。我根据我的要求为glxChooseVisual制作了属性列表。为什么以某种方式使用共享库而不是动态库是一个谜。