Open GL ES library name (on Windows Mobile)
-
Qt seems to expect the name of the Open GL ES library to be libGLES.lib, and to include EGL functionality.
But the library I'm now trying to use (MascotCapsule Renderion) has two library files, libGLESv1.lib and libEGL.lib, which seems to be the current standard. Is there a way for me to specify the names of those libs when configuring Qt, or can someone think of another way to get around this problem? I found a way to change the expected name of the Open GL ES library, but not to make Qt also use a separate EGL library.
-
OK. Managed to solve this myself. In mkspecs/common/wince/qmake.conf I simply changed the line defining the name(s) of the GLES libraries to:
QMAKE_LIBS_OPENGL_ES1 = libGLESv1_CM.lib libEGL.lib
However, this just led to another problem. When building Qt, I get a link error when linking QtOpenGLd4.dll:
@
link /LIBPATH:"p:\Qt\4.7.0-mobile-opengl\lib" /LIBPATH:"p:\Qt\4.7.0-mobile-opengl\lib" /NOLOGO /NODEFAULTLIB:OLDNAMES.LIB /DEBUG /SUBSYSTEM:WINDOWSCE,5.01 /MACHINE:THUMB /DLL /VERSION:4.70 /OUT:....\lib\QtOpenGLd4.dll @C:\Users\lborgne\AppData\Local\Temp\QtOpenGLd4.dll.1700.3651.jom
Creating library ....\lib\QtOpenGLd4.lib and object ....\lib\QtOpenGLd4.expqgl.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QGLWindowSurface::staticMetaObject" (?staticMetaObject@QGLWindowSurface@2UQMetaObject@B)
qglpaintdevice.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QGLWindowSurface::staticMetaObject" (?staticMetaObject@QGLWindowSurface@2UQMetaObject@B)
....\lib\QtOpenGLd4.dll : fatal error LNK1120: 1 unresolved externals
@QGLWindowSurface::staticMetaObject sounds like something quite internal to Qt, and I cannot really see what could be causing it to be missing. Any ideas on how to solve this are most welcome.
I should also mention that this only happens with 4.7. 4.6.3 now builds properly with this GLES library.