[Interest] [Qt 5.0] Qt5, opengl and platform plugin (x64 static)

Mojmír Svoboda Mojmir.Svoboda at warhorsestudios.cz
Tue Jan 29 12:51:35 CET 2013


Hello again,

thanks to your recent help I succeeded to compile the program
with 5.0 version.

But it does not end there, there is something called platform
plugin standing in my way to first run.

I am using static build of the qt library for my program, so I
imported the plugin in main.cpp via
    Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);
macro

Then I got tons of unresolved symbols related mainly to EGL.
To be specific, most of errors were generated by missing symbol
__imp_eglGetError and later I realized that this is a consequence
of wrong __declspec(dllimport) in angle library. 
Fixing that, I was left with few another ones unresolved symbols
like ShInitialize referenced in libGLESv2d.lib. But I believe 
these could be solved.

Later I found bugreport for the static build of angle
https://bugreports.qt-project.org/browse/QTBUG-28196
which states my worst problem with angle: 

"The problem is though that ANGLE has code in a DLLMain doing
thread-local storage stuff (TlsAlloc). This needs to be resolved."

It was already late night, when I thought 'I do not need that opengl stuff'
and tried misc variations of building Qt with -opengl desktop or -no-opengl.
I do not know if it is possible to build Qt without OpenGL (is it?)
but it seems not to be the easy way either :)

So to formulate my questions:
1) What's inside qwindows plugin? Is it necessary to run Qt application?
2) Is Qt5 compileable without OpenGL?
3) Any ideas how to resolve the DLLMain with TLS stuff? Call the
DLLMain explicitly from main.cpp from my application from main
thread? Will this naive approach work?

Many thanks for your attention,
Mojmir


More information about the Interest mailing list