上网搜了以下相关的解决方法,都是针对QT低版本的,例如这篇文章:QT常见错误之GLU头文件没法使用。我尝试了一下,最终在Window7下的QT5.2环境下解决了这个问题。
1、在引用了类似于gluPerspective函数的glu函数库所在源文件中添加头文件:#include<gl/glu.h>
这一步必须,不知道为什么在QT5.2下使用OpenGL的以glu开头的GLu32库还需要包含gl/glu.h头文件,而使用OpenGL中以gl打头的OpenGL32库就不需要包含头文件了。
2、下载glut.lib和glut32.lib这两个库文件,将其拷贝到你的QT安装目录下的Qt5.2.0\5.2.0\mingw48_32\lib文件夹下,这样QT编译器会自动到该lib目录下搜相应的库文件,即glu函数库的实现。
这一步可能不需要。
最后,在我的Qt5.2环境下尝试了一下下Qt下的OpenGL 编程(2)动手搭建Qt下的OpenGL编程框架这篇博文以及C++ GUI Programming with Qt4(第2版)第20章三角锥Tetrahedron中的OpenGL例子,确认进行上述配置后,gluPerspective(45.0,(GLfloat)width/(GLfloat)height,0.1,100.0);以及gluPickMatrix(GLdouble(pos.x()),GLdouble(viewport[3]-pos.y()),5.0,5.0,viewport);这两行代码好使了。