在Qt中使用OpenGL时出现链接器错误
我正在尝试将OpenGL与Qt结合使用。 我遵循这个示例:使用msvc2012的Qt5构建。最后,我得到了以下错误:在Qt中使用OpenGL时出现链接器错误,qt,visual-c++,opengl,linker,Qt,Visual C++,Opengl,Linker,我正在尝试将OpenGL与Qt结合使用。 我遵循这个示例:使用msvc2012的Qt5构建。最后,我得到了以下错误: 错误LNK2019:未解析的外部符号\u imp_glClear@4在函数“public:virtualvoid u thiscall OpenGLWindow::render(void)”中引用(?render@OpenGLWindow@@UAEXXZ)D:\Documents\Code\Qt Projects\qttest2\qttest2\openglwindow.obj
即使从OpenGLWindow示例中复制源代码,我也会收到错误。您是否在pro文件中添加了OpenGL模块,如下所示:
QT += opengl
必须将
opengl32.lib
添加到链接库列表中。在QtCreator.pro文件中添加OpenGL模块应该可以做到这一点
QT += opengl
如果使用Qt 5,则在项目文件(*.pro)中添加下一个库
D:\Qt\5.5\mingw492\u 32\lib\libQt5OpenGL.a
是路径。在linux环境中安装[mesa]库可以解决此问题。
[lib32 mesa,OpenGL规范的开源实现]
[pacman -S mesa ] *Arch Linux
[apt-get install mesa] *ubuntu/Mint/Raspbian
谢谢datenwolf!我认为当使用Gtgui时,Qt项目模板已经解决了这个问题,但显然没有。您知道在使用Qt visual studio插件时是否使用了.pro文件吗?据我所知,.pro文件与QtCreator应用程序有关。@MHA:当然,在Visual Studio中,您必须使用该应用程序的编译器/链接器设置。Qt在几个库中分开,其中一个库是qtopengl.{so,dll},因此您必须向其中添加链接器文件,即qtopengl.lib和opengl32.lib(或libGL.so)。(或者不管DLL/LIB的确切名称是什么。我通常使用CMake,Qt CMake模块为我完成所有繁重的工作:P)嗨,你能澄清一下你的帖子吗?我也有同样的问题,但在.pro文件中添加“opengl”并没有起到作用。我使用MSVC2013作为我的编译器。如何将这些库链接到它?@user929404:首先,您必须确保您有一个实际支持OpenGL的Qt5构建。MSVC的默认预构建Qt5包是在不支持OpenGL的情况下构建的,内部使用ANGLE for QtQuick。我将opengl32.lib添加到链接库列表中,这与visual studio相当。谢谢你的回答!我将datenwolf的回答标记为答案,因为我认为他是第一个。@MHA请您解释一下如何将opengl32.lib添加到链接库列表中。我使用MSVC2013作为我的编译器,Qt CreatorSadly no.我已经有一段时间没有处理这个问题了(差不多一年了)。你最好到别处去找解决办法:)祝你好运!我很想回答这个问题,但是自从我提出这个问题以来的四年让我忘记了实际的问题:)谢谢你,我希望它能帮助其他人。我很想回答这个问题,但是自从我提出这个问题以来的四年让我忘记了实际的问题:)谢谢你,我希望它能帮助其他人。这是一个想法,帮助开发人员寻找解决方案。
[pacman -S mesa ] *Arch Linux
[apt-get install mesa] *ubuntu/Mint/Raspbian