How can I resolve naming conflict in given precompiled libraries?
Posted
by asm
on Stack Overflow
See other posts from Stack Overflow
or by asm
Published on 2010-03-18T21:12:08Z
Indexed on
2010/03/18
21:21 UTC
Read the original article
Hit count: 208
I'm linking two different libraries that have functions with exactly same name (it's opengl32.lib and libgles_cm.lib - OpenGL ES emulation under Win32 platform), and I want to be able to specify, which version I'm calling.
I'm porting a game to OpenGL ES, and what I want to achieve, is a split-screen rendering, where left side is an OpenGL version, and right side is a ES version. To produce the same result, they will recieve slightly different calls, and I'll be able to visually compare them, effectively finding visual artifacts.
It worked perfectly with OpenGL/DirectX at the same window, but now the problem is that both versions imports the functions with the same name, like glDrawArrays, and only one version is imported. Unfortunately, I don't have sources of any of that libraries.
Is there a way to... I dont' know, wrap one library into additional namespace before linking (with calls like ES::glDrawArrays), somehow rename some of functions or do anything else?
I'm using microsoft compiler now, but if there will be solution with another one (GCC/ICC), I'll switch to it.
© Stack Overflow or respective owner