C++ 在Windows上构建Qt 5.9项目时出现OpenGL链接错误

C++ 在Windows上构建Qt 5.9项目时出现OpenGL链接错误,c++,windows,qt,opengl,qt5,C++,Windows,Qt,Opengl,Qt5,我正在尝试使用MSVC2017 64位并使用预构建的Qt二进制文件在Windows上构建Qt 5.9项目。 该项目依赖于创建自定义项,该自定义项用作生成原始OpenGL调用的渲染后端 在尝试构建时,它似乎链接到系统版本OpenGL(Windows上为1.0),并返回大量未解析的外部符号,如果我没有弄错的话,这些都是OpenGL 1.0上不存在的函数。您可以在下面看到未解析符号的列表 我已经尝试过各种解决方案,比如将LIBS+=opengl32.lib添加到我的.pro文件中,但它一直链接到系统版

我正在尝试使用MSVC2017 64位并使用预构建的Qt二进制文件在Windows上构建Qt 5.9项目。 该项目依赖于创建自定义项,该自定义项用作生成原始OpenGL调用的渲染后端

在尝试构建时,它似乎链接到系统版本OpenGL(Windows上为1.0),并返回大量未解析的外部符号,如果我没有弄错的话,这些都是OpenGL 1.0上不存在的函数。您可以在下面看到未解析符号的列表

我已经尝试过各种解决方案,比如将
LIBS+=opengl32.lib
添加到我的
.pro
文件中,但它一直链接到系统版本。GPU驱动程序更新到最新版本。由于每次修改
.pro
时都运行
qmake
,因此没有重新生成makefile的问题

如何链接正确的OpenGL版本以使编译成功返回

qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glBindTexture referenced in function "void __cdecl glnvg__bindTexture(struct GLNVGcontext *,unsigned int,unsigned int)" (?glnvg__bindTexture@@YAXPEAUGLNVGcontext@@II@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glBlendFunc referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glColorMask referenced in function "void __cdecl glnvg__fill(struct GLNVGcontext *,struct GLNVGcall *)" (?glnvg__fill@@YAXPEAUGLNVGcontext@@PEAUGLNVGcall@@@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glCullFace referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glDeleteTextures referenced in function "int __cdecl glnvg__deleteTexture(struct GLNVGcontext *,int)" (?glnvg__deleteTexture@@YAHPEAUGLNVGcontext@@H@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glDisable referenced in function "void __cdecl glnvg__fill(struct GLNVGcontext *,struct GLNVGcall *)" (?glnvg__fill@@YAXPEAUGLNVGcontext@@PEAUGLNVGcall@@@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glDrawArrays referenced in function "void __cdecl glnvg__fill(struct GLNVGcontext *,struct GLNVGcall *)" (?glnvg__fill@@YAXPEAUGLNVGcontext@@PEAUGLNVGcall@@@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glEnable referenced in function "void __cdecl glnvg__fill(struct GLNVGcontext *,struct GLNVGcall *)" (?glnvg__fill@@YAXPEAUGLNVGcontext@@PEAUGLNVGcall@@@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glFinish referenced in function "int __cdecl glnvg__renderCreate(void *)" (?glnvg__renderCreate@@YAHPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glFrontFace referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glGenTextures referenced in function "int __cdecl glnvg__renderCreateTexture(void *,int,int,int,int,unsigned char const *)" (?glnvg__renderCreateTexture@@YAHPEAXHHHHPEBE@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glGetError referenced in function "void __cdecl glnvg__checkError(struct GLNVGcontext *,char const *,int)" (?glnvg__checkError@@YAXPEAUGLNVGcontext@@PEBDH@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glPixelStorei referenced in function "int __cdecl glnvg__renderCreateTexture(void *,int,int,int,int,unsigned char const *)" (?glnvg__renderCreateTexture@@YAHPEAXHHHHPEBE@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glStencilFunc referenced in function "void __cdecl glnvg__stencilFunc(struct GLNVGcontext *,unsigned int,int,unsigned int)" (?glnvg__stencilFunc@@YAXPEAUGLNVGcontext@@IHI@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glStencilMask referenced in function "void __cdecl glnvg__stencilMask(struct GLNVGcontext *,unsigned int)" (?glnvg__stencilMask@@YAXPEAUGLNVGcontext@@I@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glStencilOp referenced in function "void __cdecl glnvg__fill(struct GLNVGcontext *,struct GLNVGcall *)" (?glnvg__fill@@YAXPEAUGLNVGcontext@@PEAUGLNVGcall@@@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glTexImage2D referenced in function "int __cdecl glnvg__renderCreateTexture(void *,int,int,int,int,unsigned char const *)" (?glnvg__renderCreateTexture@@YAHPEAXHHHHPEBE@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glTexParameteri referenced in function "int __cdecl glnvg__renderCreateTexture(void *,int,int,int,int,unsigned char const *)" (?glnvg__renderCreateTexture@@YAHPEAXHHHHPEBE@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol __imp_glTexSubImage2D referenced in function "int __cdecl glnvg__renderUpdateTexture(void *,int,int,int,int,int,unsigned char const *)" (?glnvg__renderUpdateTexture@@YAHPEAXHHHHHPEBE@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glActiveTexture referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glBindBuffer referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glDeleteBuffers referenced in function "void __cdecl glnvg__renderDelete(void *)" (?glnvg__renderDelete@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glGenBuffers referenced in function "int __cdecl glnvg__renderCreate(void *)" (?glnvg__renderCreate@@YAHPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glBufferData referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glStencilOpSeparate referenced in function "void __cdecl glnvg__fill(struct GLNVGcontext *,struct GLNVGcall *)" (?glnvg__fill@@YAXPEAUGLNVGcontext@@PEAUGLNVGcall@@@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glAttachShader referenced in function "int __cdecl glnvg__createShader(struct GLNVGshader *,char const *,char const *,char const *,char const *,char const *)" (?glnvg__createShader@@YAHPEAUGLNVGshader@@PEBD1111@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glBindAttribLocation referenced in function "int __cdecl glnvg__createShader(struct GLNVGshader *,char const *,char const *,char const *,char const *,char const *)" (?glnvg__createShader@@YAHPEAUGLNVGshader@@PEBD1111@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glCompileShader referenced in function "int __cdecl glnvg__createShader(struct GLNVGshader *,char const *,char const *,char const *,char const *,char const *)" (?glnvg__createShader@@YAHPEAUGLNVGshader@@PEBD1111@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glCreateProgram referenced in function "int __cdecl glnvg__createShader(struct GLNVGshader *,char const *,char const *,char const *,char const *,char const *)" (?glnvg__createShader@@YAHPEAUGLNVGshader@@PEBD1111@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glCreateShader referenced in function "int __cdecl glnvg__createShader(struct GLNVGshader *,char const *,char const *,char const *,char const *,char const *)" (?glnvg__createShader@@YAHPEAUGLNVGshader@@PEBD1111@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glDeleteProgram referenced in function "void __cdecl glnvg__deleteShader(struct GLNVGshader *)" (?glnvg__deleteShader@@YAXPEAUGLNVGshader@@@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glDeleteShader referenced in function "void __cdecl glnvg__deleteShader(struct GLNVGshader *)" (?glnvg__deleteShader@@YAXPEAUGLNVGshader@@@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glDisableVertexAttribArray referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glEnableVertexAttribArray referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glGetProgramiv referenced in function "int __cdecl glnvg__createShader(struct GLNVGshader *,char const *,char const *,char const *,char const *,char const *)" (?glnvg__createShader@@YAHPEAUGLNVGshader@@PEBD1111@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glGetProgramInfoLog referenced in function "void __cdecl glnvg__dumpProgramError(unsigned int,char const *)" (?glnvg__dumpProgramError@@YAXIPEBD@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glGetShaderiv referenced in function "int __cdecl glnvg__createShader(struct GLNVGshader *,char const *,char const *,char const *,char const *,char const *)" (?glnvg__createShader@@YAHPEAUGLNVGshader@@PEBD1111@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glGetShaderInfoLog referenced in function "void __cdecl glnvg__dumpShaderError(unsigned int,char const *,char const *)" (?glnvg__dumpShaderError@@YAXIPEBD0@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glGetUniformLocation referenced in function "void __cdecl glnvg__getUniforms(struct GLNVGshader *)" (?glnvg__getUniforms@@YAXPEAUGLNVGshader@@@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glLinkProgram referenced in function "int __cdecl glnvg__createShader(struct GLNVGshader *,char const *,char const *,char const *,char const *,char const *)" (?glnvg__createShader@@YAHPEAUGLNVGshader@@PEBD1111@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glShaderSource referenced in function "int __cdecl glnvg__createShader(struct GLNVGshader *,char const *,char const *,char const *,char const *,char const *)" (?glnvg__createShader@@YAHPEAUGLNVGshader@@PEBD1111@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glUseProgram referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glUniform1i referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glUniform3fv referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glUniform4fv referenced in function "void __cdecl glnvg__setUniforms(struct GLNVGcontext *,int,int)" (?glnvg__setUniforms@@YAXPEAUGLNVGcontext@@HH@Z)
qnanopainter.obj : error LNK2019: unresolved external symbol glVertexAttribPointer referenced in function "void __cdecl glnvg__renderFlush(void *)" (?glnvg__renderFlush@@YAXPEAX@Z)

它不是的副本,我在每次编辑
.pro
文件后运行
qmake
,如上所述。

看起来您没有链接现代OpenGL函数的实现。opengl32.dll不提供这些功能。您可能想使用一些辅助程序库,如glew。我尝试使用glew,但没有效果,它不断出现相同的错误。它已被修复,正确的库未链接。有关更多信息,请访问Github。