当我在Qt5中使用opengl时,有一个关于gluOrtho2D的链接错误

时间:2014-01-10 13:58:41

标签: c++ qt opengl qt5

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

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,而不是网络上的其他错误信息... 为什么?如何纠正它们?

1 个答案:

答案 0 :(得分:0)

要回答有关装饰_gluOrhto2D@ 16 的问题,这是您在使用__stdcall调用时传递的参数列表的大小(以字节为单位)约定。

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

您是否通过尝试传递gluOrtho2D (...) 4 GLfloat / float个变量和/或在gluOrtho2D (...)的任何地方重新定义原型来混淆编译器? / p>