大多数人终生追逐的那些希望和努力是毫无价值的。每个人只是因为有个胃,就注定要参与这种追逐。而且由于参与这种追逐,他的胃是可能得到满足的,但是,一个有思想、有感情的人却不能由此得到满足。——爱因斯坦

Win7 64位+VS2008环境下配置 opengl 开发环境

最近开始研究Opengl,在自己电脑上安装了VS2008(VC++),按照网上的配置方式配置折腾了许久才成功,整理在此,希望能够给其他人带来方便。

 

===== 下载OPENGL库 ======

可以到OpenGL官网下载。GLUT并不是OpenGL所必须的,但会给我们的学习带来一定的方便,推荐安装。 http://www.opengl.org/resources/libraries/glut/

然后将以下文件分别放到对应目录(可能没有GL文件夹,可以自己创建一个)。

glut.h
glu.h
gl.h

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\GL


glut.32.lib

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib

glut32.dll
glu32.gll
C:\WINDOWS\system32

 

===== 样例测试 =====

以上设置完毕后,可以使用如下样例测试:hello.c(以下样例来自《OPENGL编制指南》,俗称红宝书,opengl开发必看书籍)

 1 /*
 2  * hello.c
 3  * This is a simple, introductory OpenGL program.
 4  */
 5 #include <GL/glut.h>
 6 #include <stdlib.h>
 7 
 8 void display(void)
 9 {
10 /* clear all pixels  */
11    glClear (GL_COLOR_BUFFER_BIT);
12 
13 /* draw white polygon (rectangle) with corners at
14  * (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)  
15  */
16    glColor3f (1.0, 1.0, 1.0);
17    glBegin(GL_POLYGON);
18       glVertex3f (0.25, 0.25, 0.0);
19       glVertex3f (0.75, 0.25, 0.0);
20       glVertex3f (0.75, 0.75, 0.0);
21       glVertex3f (0.25, 0.75, 0.0);
22    glEnd();
23 
24 /* don't wait!  
25  * start processing buffered OpenGL routines 
26  */
27    glFlush ();
28 }
29 
30 void init (void) 
31 {
32 /* select clearing color     */
33    glClearColor (0.0, 0.0, 0.0, 0.0);
34 
35 /* initialize viewing values  */
36    glMatrixMode(GL_PROJECTION);
37    glLoadIdentity();
38    glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
39 }
40 
41 /* 
42  * Declare initial window size, position, and display mode
43  * (single buffer and RGBA).  Open window with "hello"
44  * in its title bar.  Call initialization routines.
45  * Register callback function to display graphics.
46  * Enter main loop and process events.
47  */
48 int main(int argc, char** argv)
49 {
50    glutInit(&argc, argv);
51    glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
52    glutInitWindowSize (250, 250); 
53    glutInitWindowPosition (100, 100);
54    glutCreateWindow ("hello");
55    init ();
56    glutDisplayFunc(display); 
57    glutMainLoop();
58    return 0;   /* ANSI C requires main to return int. */
59 }
60 

===== 建工程 =====

1. 文件->新建->项目->Visual C++->win32控制台应用程序。
2. 输入项目名称:比如demo,其他默认。
3. VS启动项目向导,选择下一步,选择空项目,其他默认,点击完成。
4. 在解决方案资源管理器中,右键源文件,添加现有项,导入刚写好的hello.c文件。
5. 按F7生成解决方案,按F5启动调试。
 
===== 可能遇到的问题 =====
编译期间可能会出现如下错误:
error LNK2019: 无法解析的外部符号 __imp____glutCreateWindowWithExit@8,该符号在函数 _glutCreateWindow_ATEXIT_HACK@4 中被引用
解决办法:在glut.h文件中添加如下定义:
#define GLUT_DISABLE_ATEXIT_HACK
 
OK,Enjoy!
 

OPENGL官方网站:http://www.opengl.org/

posted @ 2012-09-24 23:27  东去春来  阅读(2306)  评论(0编辑  收藏  举报