我已经尝试了网络上出现的所有解决方案,但错误仍然存在。 以下是错误信息:
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,而不是网络上的其他错误信息...
为什么?如何纠正它们?
答案 0 :(得分:0)
要回答有关装饰_gluOrhto2D@
后 16 的问题,这是您在使用__stdcall
调用时传递的参数列表的大小(以字节为单位)约定。
考虑gluOrtho2D (...)
应该采用4 GLdouble
个参数而GLdouble
应该是64位类型,似乎严重错误(正确的装饰名称为_gluOrtho2D@32
)。
您是否通过尝试传递gluOrtho2D (...)
4 GLfloat
/ float
个变量和/或在gluOrtho2D (...)
的任何地方重新定义原型来混淆编译器? / p>