Important: Please read the Qt Code of Conduct -

ANGLE with static 5.5 build

  • I've been having a lot of trouble with getting ANGLE to work in a statically built QML app. The release binary runs fine on my development machine, even with a clean environment, but on the other Windows boxes I've tried it fails to launch, with an error message saying graphics drivers are missing and suggesting making sure D3DCompiler_xx.dll, libEGL.dll, and libGLESv2.dll are available. I verified using Process Explorer that the release binary on my machine is not loading any DLLs that wouldn't be present on a target machine, but now I don't know where to go next in debugging this. Can anyone help?

    I built my static Qt with MinGW-w64, gcc 4.9.2, i686, DWARF, POSIX threads, release v2. I configured as follows:

    configure.bat -prefix C:\Qt\Static\5.5.0 -debug-and-release -static -platform win32-g++ -no-avx -no-avx2 -no-sse3 -no-ssse3 "-no-sse4.1" "-no-sse4.2" -no-openssl -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opensource -make libs -make tools -nomake examples -nomake tests -skip activeqt

    It appears that Qt defaults to using OpenGL ES in 5.5, so I left out the -opengl angle option that was previously necessary in 5.4.

    I also found that even with all the instruction set related flags, the ANGLE build was still emitting AVX instructions - I fixed it temporarily by commenting out the -march=native option in qtbase/src/angle/src/config.pri and adding -march=pentium4 to qtbase/mkspecs/win32-g++/qmake.conf.

  • Another interesting development: I tried running on another machine with the Qt toolchain installed, and the program worked. So it appears it is still reading something from the filesystem that is not on a regular Windows machine, but I don't know what that might be. I did package all the qmldir files needed for Qt Quick to work.