Qt5中使用opengl时出现链接错误,关于gluOrtho2D

Posted

技术标签:

【中文标题】Qt5中使用opengl时出现链接错误,关于gluOrtho2D【英文标题】:There is a linkerror when I use opengl in Qt5, about gluOrtho2D 【发布时间】:2014-01-10 13:58:40 【问题描述】:

我已经尝试了网络上出现的所有解决方案,但错误仍然存​​在。 以下是错误信息:

error LNK2019: unresolved external symbol _gluOrtho2D@16 referenced in function "protected: virtual void __thiscall widget::initializeGL(void)" (?initializeGL@widget@@MAEXXZ)

我确定我已正确包含所有头文件,并且链接文件位于正确位置,并且我还在我的文件中添加了#define GLUT_DISABLE_ATEXIT_HACK。此外,当我不使用 Qt 时,一切正常。当我将代码放入 QGLWidget 时,出现了错误! 再说了,我注意到_gluOrtho2D@ 之后的错误信息是 16,而不是网络上其他的 32... 为什么?如何纠正?

【问题讨论】:

你包括glu32.lib吗?链接器找不到 QT 在其窗口小部件中使用的那个函数的代码。您似乎指定了正确的标题,但没有指定库。 【参考方案1】:

回答您关于修饰的_gluOrhto2D@ 后面的16 的问题,即使用__stdcall 调用约定时您传递的参数列表的大小(以字节为单位)。 p>

考虑到 gluOrtho2D (...) 应该采用 4 个 GLdouble 参数,而 GLdouble 应该是 64 位类型,这似乎是一个严重错误(正确的修饰名称是 _gluOrtho2D@32)。

您是否曾试图在任何地方传递 gluOrtho2D (...) 4 GLfloat / float 变量和/或重新定义 gluOrtho2D (...) 的原型,从而混淆了您的编译器?

【讨论】:

以上是关于Qt5中使用opengl时出现链接错误,关于gluOrtho2D的主要内容,如果未能解决你的问题,请参考以下文章

找不到任何 GLU 文档

使用图形函数时出现分段错误(vtk 6.1、Qt5.3、Ubuntu)

运行 Qt5 应用程序时出现 Qt 错误消息

在 Visual Studio/C++ 中使用 fbx SDK 构建项目时出现编译错误

测试从 qt4 迁移到 qt5 的库时出现分段错误

Qt 5.5 QOpenGLWidget链接错误未链接任何openGL调用