Relocation error: undefined symbol: glDeleteProgramsARB

I am working with opengl and nvparse under linux. I now just changed from redhat 9.0 to suse and that gave me problems with my code. Under redhat everything worked fine, now I had some compile errors that I got solved already. But when I start and run my newly compiled code I get the error: relocation error: “some lib of me”: undefined symbol: glDeleteProgramsARB. Does someone knows the cause of this and how I can solve it.


Did you check for the extensions availability or do you just make the call?

The problem looks like the function is not supported in the gl library you’re calling.

When you moved to suse did you install the latest & greatest drivers for your card or just use whatever you dot from the distro?

If it used to work then a driver update is probably the solution but you should check for extension support after creating the context, either by checking extension strings or glxgetprocaddress and checking for a NULL pointer. If you just make the call & use the strings you probably have to ignore unresolved at compile time.

Runtime checking while it’s definitely the right thing to do isn’t really a solution since you’ll still be missing the extension.

You should probably also check your desktop color depth etc just to make sure it’s 24 bit etc.


I did check for the extensions in the lib that I though I was using, but indeed it seemed that I was linking to the wrong gl library, ldd showed a path to a wrong lib that didn’t contain the extensions.
So that solved the problem then.
Just for the information, I did install the latest nvidia driver first, but that caused me a lot of problems, with glib that gave a lot of errors at compile time. The previous driver (1.0-4496) works fine now for my quadro FX graphics board.

Thanks for your help,

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.