[Interest] Linking issues with Angle and Qt 5.12.x
Vadim Peretokin
vperetokin at gmail.com
Mon May 27 13:09:28 CEST 2019
Are you mixing 64bit and 32bit libraries by accident during linking? I had
similar messages in that scenario.
On Mon, May 27, 2019 at 12:57 PM Oliver Wolff <Oliver.Wolff at qt.io> wrote:
> Hi Frederico,
>
> I am not aware of an issue with ANGLE when using MinGW. Can you create a
> bug report on http://bugreports.qt.io/ ,attach a minimal example, and
> assign it to me so that it does not get lost?
>
> Olli
>
> On 25/05/2019 17:47, Federico Buti wrote:
> > 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 at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b4):
>
> > undefined reference to `glDeleteShader at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d5):
>
> > undefined reference to `glDeleteBuffers at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e5):
>
> > undefined reference to `glDeleteShader at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f5):
>
> > undefined reference to `glDeleteProgram at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x988):
>
> > undefined reference to `_imp__glBindTexture at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x9a0):
>
> > undefined reference to `_imp__glPixelStorei at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x9fc):
>
> > undefined reference to `_imp__glTexSubImage2D at 36'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0xa43):
>
> > undefined reference to `_imp__glBindTexture at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1361):
>
> > undefined reference to `_imp__glDeleteTextures at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1388):
>
> > undefined reference to `_imp__glGetError at 0'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1407):
>
> > undefined reference to `_imp__glGenTextures at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x143a):
>
> > undefined reference to `_imp__glBindTexture at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1442):
>
> > undefined reference to `_imp__glPixelStorei at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x14ae):
>
> > undefined reference to `_imp__glTexImage2D at 36'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x14d7):
>
> > undefined reference to `_imp__glTexParameteri at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1638):
>
> > undefined reference to `_imp__glBindTexture at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x16b9):
>
> > undefined reference to `glGenerateMipmap at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x16fa):
>
> > undefined reference to `_imp__glTexImage2D at 36'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x171a):
>
> > undefined reference to `_imp__glTexParameteri at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x17e0):
>
> > undefined reference to `glUniform4fv at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1828):
>
> > undefined reference to `_imp__glBindTexture at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x185f):
>
> > undefined reference to `_imp__glBindTexture at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x18bb):
>
> > undefined reference to `glGetProgramInfoLog at 16'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x192e):
>
> > undefined reference to `glGetShaderInfoLog at 16'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19c9):
>
> > undefined reference to `glCreateProgram at 0'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19d7):
>
> > undefined reference to `glCreateShader at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x19e8):
>
> > undefined reference to `glCreateShader at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a19):
>
> > undefined reference to `glShaderSource at 16'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a44):
>
> > undefined reference to `glShaderSource at 16'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a4f):
>
> > undefined reference to `glCompileShader at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a6a):
>
> > undefined reference to `glGetShaderiv at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1a94):
>
> > undefined reference to `glCompileShader at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1aaf):
>
> > undefined reference to `glGetShaderiv at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1adb):
>
> > undefined reference to `glAttachShader at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1aea):
>
> > undefined reference to `glAttachShader at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b05):
>
> > undefined reference to `glBindAttribLocation at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b20):
>
> > undefined reference to `glBindAttribLocation at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b2b):
>
> > undefined reference to `glLinkProgram at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1b46):
>
> > undefined reference to `glGetProgramiv at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1bd9):
>
> > undefined reference to `glGetUniformLocation at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1bf1):
>
> > undefined reference to `glGetUniformLocation at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c09):
>
> > undefined reference to `glGetUniformLocation at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c22):
>
> > undefined reference to `glGenBuffers at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1c38):
>
> > undefined reference to `_imp__glFinish at 0'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d14):
>
> > undefined reference to `_imp__glStencilFunc at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d5f):
>
> > undefined reference to `glUseProgram at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d64):
>
> > undefined reference to `_imp__glEnable at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d86):
>
> > undefined reference to `_imp__glCullFace at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1d96):
>
> > undefined reference to `_imp__glFrontFace at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1da7):
>
> > undefined reference to `_imp__glDisable at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1dca):
>
> > undefined reference to `_imp__glColorMask at 16'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1df7):
>
> > undefined reference to `_imp__glStencilMask at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e0c):
>
> > undefined reference to `_imp__glStencilOp at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e4c):
>
> > undefined reference to `_imp__glStencilFunc at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e5b):
>
> > undefined reference to `glActiveTexture at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1e60):
>
> > undefined reference to `_imp__glBindTexture at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1edf):
>
> > undefined reference to `glBindBuffer at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f07):
>
> > undefined reference to `glBufferData at 16'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f16):
>
> > undefined reference to `glEnableVertexAttribArray at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f25):
>
> > undefined reference to `glEnableVertexAttribArray at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f5c):
>
> > undefined reference to `glVertexAttribPointer at 24'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1f93):
>
> > undefined reference to `glVertexAttribPointer at 24'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fa9):
>
> > undefined reference to `glUniform1i at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fc6):
>
> > undefined reference to `glUniform4fv at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x1fce):
>
> > undefined reference to `_imp__glDrawArrays at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2085):
>
> > undefined reference to `glBlendFuncSeparate at 16'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2141):
>
> > undefined reference to `glStencilOpSeparate at 16'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2168):
>
> > undefined reference to `glStencilOpSeparate at 16'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x217f):
>
> > undefined reference to `_imp__glDrawArrays at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2289):
>
> > undefined reference to `glDisableVertexAttribArray at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2298):
>
> > undefined reference to `glDisableVertexAttribArray at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x22bd):
>
> > undefined reference to `glBindBuffer at 8'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x22cc):
>
> > undefined reference to `glUseProgram at 4'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2374):
>
> > undefined reference to `_imp__glDrawArrays at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x249e):
>
> > undefined reference to `_imp__glDrawArrays at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2532):
>
> > undefined reference to `_imp__glDrawArrays at 12'
> >
> libqnanopainter.a(qnanobackendgles2.cpp.o):qnanobackendgles2.cpp:(.text+0x2843):
>
> > undefined reference to `_imp__glDrawArrays at 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 at qt-project.org
> > https://lists.qt-project.org/listinfo/interest
> >
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20190527/1eca9308/attachment.html>
More information about the Interest
mailing list