Hi all. We are facing a quite strange behaviour with qnanopainter <https://github.com/QUItCoding/qnanopainter>. Building/running the library and the examples works smoothly on Qt 5.9.8 and no issue is found. I guess everything was fixed there, see for instance here <https://github.com/QUItCoding/qnanopainter/issues/16#issue-235192684>.
Building the code on 5.12.x results in a similar linker issue as depicted in the last link. In particular we have a series of undefined references as shown below: libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x12b): undefined reference to `_imp__glDeleteTextures@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b4): undefined reference to `glDeleteShader@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d5): undefined reference to `glDeleteBuffers@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e5): undefined reference to `glDeleteShader@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f5): undefined reference to `glDeleteProgram@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x988): undefined reference to `_imp__glBindTexture@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x9a0): undefined reference to `_imp__glPixelStorei@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x9fc): undefined reference to `_imp__glTexSubImage2D@36' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0xa43): undefined reference to `_imp__glBindTexture@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1361): undefined reference to `_imp__glDeleteTextures@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1388): undefined reference to `_imp__glGetError@0' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1407): undefined reference to `_imp__glGenTextures@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x143a): undefined reference to `_imp__glBindTexture@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1442): undefined reference to `_imp__glPixelStorei@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x14ae): undefined reference to `_imp__glTexImage2D@36' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x14d7): undefined reference to `_imp__glTexParameteri@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1638): undefined reference to `_imp__glBindTexture@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x16b9): undefined reference to `glGenerateMipmap@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x16fa): undefined reference to `_imp__glTexImage2D@36' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x171a): undefined reference to `_imp__glTexParameteri@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x17e0): undefined reference to `glUniform4fv@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1828): undefined reference to `_imp__glBindTexture@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x185f): undefined reference to `_imp__glBindTexture@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x18bb): undefined reference to `glGetProgramInfoLog@16' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x192e): undefined reference to `glGetShaderInfoLog@16' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19c9): undefined reference to `glCreateProgram@0' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19d7): undefined reference to `glCreateShader@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19e8): undefined reference to `glCreateShader@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a19): undefined reference to `glShaderSource@16' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a44): undefined reference to `glShaderSource@16' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a4f): undefined reference to `glCompileShader@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a6a): undefined reference to `glGetShaderiv@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a94): undefined reference to `glCompileShader@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1aaf): undefined reference to `glGetShaderiv@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1adb): undefined reference to `glAttachShader@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1aea): undefined reference to `glAttachShader@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b05): undefined reference to `glBindAttribLocation@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b20): undefined reference to `glBindAttribLocation@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b2b): undefined reference to `glLinkProgram@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b46): undefined reference to `glGetProgramiv@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1bd9): undefined reference to `glGetUniformLocation@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1bf1): undefined reference to `glGetUniformLocation@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c09): undefined reference to `glGetUniformLocation@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c22): undefined reference to `glGenBuffers@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c38): undefined reference to `_imp__glFinish@0' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d14): undefined reference to `_imp__glStencilFunc@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d5f): undefined reference to `glUseProgram@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d64): undefined reference to `_imp__glEnable@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d86): undefined reference to `_imp__glCullFace@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d96): undefined reference to `_imp__glFrontFace@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1da7): undefined reference to `_imp__glDisable@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1dca): undefined reference to `_imp__glColorMask@16' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1df7): undefined reference to `_imp__glStencilMask@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e0c): undefined reference to `_imp__glStencilOp@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e4c): undefined reference to `_imp__glStencilFunc@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e5b): undefined reference to `glActiveTexture@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e60): undefined reference to `_imp__glBindTexture@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1edf): undefined reference to `glBindBuffer@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f07): undefined reference to `glBufferData@16' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f16): undefined reference to `glEnableVertexAttribArray@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f25): undefined reference to `glEnableVertexAttribArray@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f5c): undefined reference to `glVertexAttribPointer@24' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f93): undefined reference to `glVertexAttribPointer@24' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fa9): undefined reference to `glUniform1i@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fc6): undefined reference to `glUniform4fv@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fce): undefined reference to `_imp__glDrawArrays@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2085): undefined reference to `glBlendFuncSeparate@16' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2141): undefined reference to `glStencilOpSeparate@16' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2168): undefined reference to `glStencilOpSeparate@16' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x217f): undefined reference to `_imp__glDrawArrays@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2289): undefined reference to `glDisableVertexAttribArray@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2298): undefined reference to `glDisableVertexAttribArray@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x22bd): undefined reference to `glBindBuffer@8' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x22cc): undefined reference to `glUseProgram@4' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2374): undefined reference to `_imp__glDrawArrays@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x249e): undefined reference to `_imp__glDrawArrays@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2532): undefined reference to `_imp__glDrawArrays@12' libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2843): undefined reference to `_imp__glDrawArrays@12' When we substituted the "liblibGLESv2.a" from Qt 5.12 with the one from 5.9 - just to do a wild test - compilation succeeded but then we had a runtime failure which was totally expected. The very same series of undefined references are also spotted while cross-compiling with MXE and a patched Qt version to have dynamic selection of the GL backend. What is exactly happening here? How can we proceed? What's the best way to use angle when cross-compiling Qt, e.g. with MXE? Thanks in advance, F.
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest