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的主要内容,如果未能解决你的问题,请参考以下文章
使用图形函数时出现分段错误(vtk 6.1、Qt5.3、Ubuntu)