I am working on a cross-platform window library designed specifically for OpenGL, currently focused on Linux. I use glload to manage OpenGL extensions, and this compiles with other libraries that I will use later in .so . This `.so is dynamically loaded, as you would expect, but at runtime the program gives the following result (manually wrapped to make it easier to read):
_dist/x64-linux-debug/bin/test: Symbol `glXCreateContextAttribsARB' has \ different size in shared object, consider re-linking
Now, obviously, I tried to reconnect, moving on to rebuilding the entire project many times (checking everything, and not just blindly hoping that this magic would make everything better). The program seems to be ready to work, as it will generate some registration results, as I would expect. I used nm to confirm that the character "is in .so
nm _dist/x64-linux-debug/lib64/libvendor.so | grep glXCreateContextAttribsARB 00000000009e0e78 B glXCreateContextAttribsARB
If I use readelf to look at the defined characters, I get the following (again, I manually wrapped the first three lines for formatting):
readelf -Ws _dist/x64-linux-debug/bin/test \ _dist/x64-linux-debug/lib64/libvendor.so | \ grep glXCreateContextAttribsARB 348: 000000000062b318 8 OBJECT GLOBAL DEFAULT 26 glXCreateContextAttribsARB 421: 000000000062b318 8 OBJECT GLOBAL DEFAULT 26 glXCreateContextAttribsARB 1370: 00000000009e0e78 8 OBJECT GLOBAL DEFAULT 25 glXCreateContextAttribsARB 17464: 00000000009e0e78 8 OBJECT GLOBAL DEFAULT 25 glXCreateContextAttribsARB
Iβm afraid that this is all I can offer to help, since I really donβt know what to try or take a look. As I said, Iβm sure more information will be needed, so please just say that I have provided what I can. I run these commands from my project root, making you wonder.
thecoshman
source share