Qt 5.5.0 не может найти функции OpenGL

у меня есть проект Qt, который использует OpenGL и отлично компилируется с Qt 5.4.0. Сегодня я обновил Qt до 5.5.0 и мой проект перестал составлять. Он бросает много unresolved external symbol ошибки, как вы можете увидеть здесь:

link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:debugUI.exe @C:UsersDWilchesAppDataLocalTempUI.exe.376.5500.jom
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glBegin@4 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::paintGL(void)" (?paintGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glClearDepth@8 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::initializeGL(void)" (?initializeGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glColor3f@12 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::paintGL(void)" (?paintGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glColor4f@16 referenced in function "private: void __thiscall UIOpenGLVisualizer::PaintScene(void)" (?PaintScene@UIOpenGLVisualizer@@AAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glEnd@0 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::paintGL(void)" (?paintGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glFrustum@48 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::paintGL(void)" (?paintGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glInitNames@0 referenced in function "public: void __thiscall UIOpenGLVisualizer::NewSelectionPerformed(void)" (?NewSelectionPerformed@UIOpenGLVisualizer@@QAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glLineStipple@8 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::initializeGL(void)" (?initializeGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glLoadIdentity@0 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::initializeGL(void)" (?initializeGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glLoadName@4 referenced in function "public: void __thiscall UIOpenGLVisualizer::NewSelectionPerformed(void)" (?NewSelectionPerformed@UIOpenGLVisualizer@@QAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glMatrixMode@4 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::initializeGL(void)" (?initializeGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glOrtho@48 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::initializeGL(void)" (?initializeGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glPointSize@4 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::initializeGL(void)" (?initializeGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glPushName@4 referenced in function "public: void __thiscall UIOpenGLVisualizer::NewSelectionPerformed(void)" (?NewSelectionPerformed@UIOpenGLVisualizer@@QAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glRenderMode@4 referenced in function "public: void __thiscall UIOpenGLVisualizer::NewSelectionPerformed(void)" (?NewSelectionPerformed@UIOpenGLVisualizer@@QAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glRotatef@16 referenced in function "public: void __thiscall UIOpenGLVisualizer::NewSelectionPerformed(void)" (?NewSelectionPerformed@UIOpenGLVisualizer@@QAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glScalef@12 referenced in function "public: void __thiscall UIOpenGLVisualizer::NewSelectionPerformed(void)" (?NewSelectionPerformed@UIOpenGLVisualizer@@QAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glSelectBuffer@8 referenced in function "public: void __thiscall UIOpenGLVisualizer::NewSelectionPerformed(void)" (?NewSelectionPerformed@UIOpenGLVisualizer@@QAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glTranslatef@12 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::paintGL(void)" (?paintGL@UIOpenGLVisualizer@@UAEXXZ)
UIOpenGLVisualizer.obj : error LNK2019: unresolved external symbol __imp__glVertex3f@12 referenced in function "public: virtual void __thiscall UIOpenGLVisualizer::paintGL(void)" (?paintGL@UIOpenGLVisualizer@@UAEXXZ)
debugUI.exe : fatal error LNK1120: 20 unresolved externals
jom: C:UsersDWilchesDesktopDIAVolumeSelectorVVSITbuild-VVSIT-Desktop_Qt_5_5_0_MSVC2013_32bit-DebugUIMakefile.Debug [debugUI.exe] Error 1120
jom: C:UsersDWilchesDesktopDIAVolumeSelectorVVSITbuild-VVSIT-Desktop_Qt_5_5_0_MSVC2013_32bit-DebugUIMakefile [debug] Error 2
21:35:43: The process "C:ProgramFilesQtQt5.5.0ToolsQtCreatorbinjom.exe" exited with code 2.
Error while building/deploying project VVSIT (kit: Desktop Qt 5.5.0 MSVC2013 32bit)
When executing step "Make"

Я не изменил .pro файлы между одной и другой версией Qt. И мой .Pro также имеет строку, которая говорит:

QT += opengl

что может быть не так ?

1 ответов


как показано @Ben-Voigt в комментариях выше, я должен был явно указать Qt на ссылку против opengl32, поэтому я добавил следующее в свой .pro:

LIBS += -lopengl32

Я не уверен, почему происходит изменение в поведении в Qt 5.5.0 а это ненужные в предыдущих версиях, но хорошо, это решает проблему.