Linkage order in Linux

michael kapelko kornerr@gmail.com
Wed Feb 10 09:21:00 GMT 2010


Hello.
Recently I found out a surprising requirement to compile own
application with Horde3D library (http://horde3d.org/), OpenGL 3D
graphics engine.
Horde3D library links to shared GL library. But -lHorde3D must be
listed *before* -lGL for any application to work correctly. If I link
the application first to GL, and only then to Horde3D, then it merely
segfaults when Horde3D's init calls glCreateShader, a GL library
function.
We have several speculations about what causes this particular order
for the linker: http://horde3d.org/forums/viewtopic.php?f=2&t=384
But I'd like to know real reason of this surprising order of linkage
requirement.
Thanks.



More information about the Binutils mailing list