一、经典问题
没有配置opengl的vc++工程,直接调用这些相关头文件就会报错。
Cannot open include file: 'gl/glut.h': No such file or directory
二、解决过程
1、下载并安装glut库
opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。
Windows环境下的GLUT下载地址:(大小约为150k)
2、Windows环境下安装GLUT的步骤:
(1)、解压得下面五个文件
(2)、将glut.h文件拷贝到visual C++下的gl目录
(3)、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(Program Files/Microsoft Visual Studio/VC98/lib”文件夹)。
(4)、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:/Windows/System32)
3、工程文件中配置
(1)、创建一个工程
(2)、链接OpenGL libraries。
在Visual C++中先单击Project,再单击Settings,再找到Link单击,最后在Object/library modules 的最前面加上opengl32.lib glu32.lib glut.lib glaux.lib gdi32.lib user32.lib advapi32.lib
或者在project -> add to project ->files引入需要的头文件
(3)单击Project Settings中的C/C++标签,将Preprocessor definitions 中的_CONSOLE改为__WINDOWS。最后单击OK。
、
(4)、工程的cpp文件中使用时候加上相关的头文件
(5)、成功编译通过
4、完成后,就可以编写你自己的程序了。在这里,贴一个网上的例子。
- #include <stdafx.h>
- void background(void)
- {
- //设置背景颜色为黑色
- glClearColor(0.0,0.0,0.0,0.0);
- }
- void myDisplay(void)
- {
- //buffer设置为颜色可写
- glClear(GL_COLOR_BUFFER_BIT);
- //开始画三角形
- glBegin(GL_TRIANGLES);
- //设置为光滑明暗模式
- glShadeModel(GL_SMOOTH);
- //设置第一个顶点为红色
- glColor3f(1.0,0.0,0.0);
- //设置第一个顶点的坐标为(-1.0,-1.0)
- glVertex2f(-1.0,-1.0);
- //设置第二个顶点为绿色
- glColor3f(0.0,1.0,0.0);
- //设置第二个顶点的坐标为(0.0,-1.0)
- glVertex2f(0.0,-1.0);
- //设置第三个顶点为蓝色
- glColor3f(0.0,0.0,1.0);
- //设置第三个顶点的坐标为(-0.5,1.0)
- glVertex2f(-0.5,1.0);
- //三角形结束
- glEnd();
- //强制OpenGL函数在有限时间内运行
- glFlush();
- }
- void myReshape(GLsizei w,GLsizei h)
- {
- glViewport(0,0,w,h);
- //设置视口
- glMatrixMode(GL_PROJECTION);
- //指明当前矩阵为GL_PROJECTION
- glLoadIdentity();
- //将当前矩阵置换为单位阵
- if(w <= h)
- gluOrtho2D(-1.0,1.5,-1.5,1.5*(GLfloat)h/(GLfloat)w);
- //定义二维正视投影矩阵
- else
- gluOrtho2D(-1.0,1.5*(GLfloat)w/(GLfloat)h,-1.5,1.5);
- glMatrixMode(GL_MODELVIEW);
- //指明当前矩阵为GL_MODELVIEW
- }
- int main(int argc, char* argv[])
- {
- // 初始化
- glutInit(&argc,argv);
- glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
- glutInitWindowSize(400,400);
- glutInitWindowPosition(200,200);
- //创建窗口
- glutCreateWindow("Triangle");
- //绘制与显示
- background();
- glutReshapeFunc(myReshape);
- glutDisplayFunc(myDisplay);
- glutMainLoop();
- return(0);
- }
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lbt609/archive/2007/07/08/1682496.aspx
阅读(3557) | 评论(0) | 转发(0) |