Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12299140
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类:

2012-12-17 00:10:26

一、经典问题

没有配置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)、解压得下面五个文件

image

 

(2)、将glut.h文件拷贝到visual C++下的gl目录

image

 

image

 

(3)、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(Program Files/Microsoft Visual Studio/VC98/lib”文件夹)。

 

image

 

image

 

(4)、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:/Windows/System32)

 

image

 

 

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

image

 

或者在project -> add to project ->files引入需要的头文件

 

(3)单击Project Settings中的C/C++标签,将Preprocessor definitions 中的_CONSOLE改为__WINDOWS。最后单击OK。

 

image

 

(4)、工程的cpp文件中使用时候加上相关的头文件

 image

 

(5)、成功编译通过

image

 

4、完成后,就可以编写你自己的程序了。在这里,贴一个网上的例子。


 

点击(此处)折叠或打开

  1. #include <stdafx.h>

  2. void background(void)
  3. {
  4. //设置背景颜色为黑色
  5. glClearColor(0.0,0.0,0.0,0.0);
  6. }

  7. void myDisplay(void)
  8. {
  9. //buffer设置为颜色可写
  10. glClear(GL_COLOR_BUFFER_BIT);
  11. //开始画三角形
  12. glBegin(GL_TRIANGLES);
  13. //设置为光滑明暗模式
  14. glShadeModel(GL_SMOOTH);
  15. //设置第一个顶点为红色
  16. glColor3f(1.0,0.0,0.0);
  17. //设置第一个顶点的坐标为(-1.0,-1.0)
  18. glVertex2f(-1.0,-1.0);
  19. //设置第二个顶点为绿色
  20. glColor3f(0.0,1.0,0.0);
  21. //设置第二个顶点的坐标为(0.0,-1.0)
  22. glVertex2f(0.0,-1.0);
  23. //设置第三个顶点为蓝色
  24. glColor3f(0.0,0.0,1.0);
  25. //设置第三个顶点的坐标为(-0.5,1.0)
  26. glVertex2f(-0.5,1.0);
  27. //三角形结束
  28. glEnd();
  29. //强制OpenGL函数在有限时间内运行
  30. glFlush();
  31. }

  32. void myReshape(GLsizei w,GLsizei h)
  33. {
  34. glViewport(0,0,w,h);
  35. //设置视口

  36. glMatrixMode(GL_PROJECTION);
  37. //指明当前矩阵为GL_PROJECTION
  38. glLoadIdentity();
  39. //将当前矩阵置换为单位阵

  40. if(w <= h)
  41. gluOrtho2D(-1.0,1.5,-1.5,1.5*(GLfloat)h/(GLfloat)w);
  42. //定义二维正视投影矩阵
  43. else
  44. gluOrtho2D(-1.0,1.5*(GLfloat)w/(GLfloat)h,-1.5,1.5);
  45. glMatrixMode(GL_MODELVIEW);
  46. //指明当前矩阵为GL_MODELVIEW
  47. }

  48. int main(int argc, char* argv[])
  49. {
  50. // 初始化
  51. glutInit(&argc,argv);
  52. glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
  53. glutInitWindowSize(400,400);
  54. glutInitWindowPosition(200,200);

  55. //创建窗口
  56. glutCreateWindow("Triangle");

  57. //绘制与显示
  58. background();
  59. glutReshapeFunc(myReshape);
  60. glutDisplayFunc(myDisplay);

  61. glutMainLoop();
  62. return(0);
  63. }


 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lbt609/archive/2007/07/08/1682496.aspx

阅读(3423) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~