我选择Visual Studio 2008作为学习OpenGL的环境。(未使用glut包)
1、把 gl.h glaux.h复制到C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl**而不是x:\Program Files\Microsoft\Visual Studio 9.0\VC\include\GL文件夹中,如果没有GL这个文件夹则可以自己新建一个。(x是你安装VS的盘符号,如果装的是VC++的话,里面有个gl文件,Visual Studio 2008则需要自己去新建一个)**
2、把opengl32.lib glaux.lib glu32.lib 放到 C:\Program Files\MicrosoftSDKs\Windows\v6.0A\Lib
注意: 包含头文件:
#include
#include
#include
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "Glaux.lib")
也可在工程属性->配置属性->连接器->命令行,的附加选项中加入上述三个lib文件
下面就可以开始我们的第一个OpenGL程序
一个简单的OpenGL程序如下:(注意,如果需要编译并运行,需要正确安装GLUT,安装方法如上所述)
#include
#include
#include
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "Glaux.lib")
void InitGL(void);
void CALLBACK Draw(void);
void CALLBACK ReDraw(GLsizei w,GLsizei h);
//窗口的初始化
void InitGL(void)
{
// 窗口显示单缓存和RGB模式
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
auxInitPosition(0,0,640,480);
auxInitWindow(TEXT("OPENGLfjj"));
glClearColor(0.6,0.6,0.6,0.0);
glClear(GL_COLOR_BUFFER_BIT);
}
void CALLBACK ReDraw(GLsizei w,GLsizei h)
{
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w<=h)
glOrtho(-20.0,20.0,-20.0*(GLfloat)h/(GLfloat)w,20.0*(GLfloat)h/(GLfloat)w,-50.0,50.0);
else
glOrtho(-20.0*(GLfloat)w/(GLfloat)h,20.0*(GLfloat)w/(GLfloat)h,-20.0,20.0,-50.0,50.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void CALLBACK Draw(void)
{
glBegin(GL_LINE_STRIP);
glColor3f(1.0,0.0,0.0);
glVertex2s(-12,-10);
glColor3f(0.0,1.0,0.0);
glVertex2s(0,10);
glColor3f(0.0,0.0,1.0);
glVertex2s(12,-10);
glColor3f(1.0,0.0,0.0);
glVertex2s(-12,-10);
glEnd();
glFlush();
}
void main(void)
{
InitGL();
auxReshapeFunc(ReDraw);
auxMainLoop(Draw);
}
在VC6.0下能够正常运行,可是在VS2008下却出现编译错误如下:
1>d:\elec\mymfctest\vs2010p\openglapps\opengltest\opengltest.cpp(4): fatal error C1083: 无法打开包括文件:“GL/glaux.h”: No such file or directory
貌似这个错误在VS2008以上的版本中都会出现。
在VS2010安装后的路径C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl下只看到两个文件
gl.h和glu.h而没有glaux.h,
而在VC6.0的安装路径C:\Program Files\Microsoft Visual Studio\VC98\Include\GL
下是有三个文件的
即gl.h、 glu.h和 glaux.h,因而在VS2010中是找不到相关的头文件。
同时glaux.lib库文件在VC6.0的安装路径C:\Program Files\Microsoft Visual Studio\VC98\Lib下,而VS2010的安装路径C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib下找不到该库文件。
所以解决方法就是,如果你安装了VC6.0那么可以从相应的文件夹中将glaux.h和glaux.lib文件分别复制到VS2010默认引用的路径之下,编译即可通过,也可以从网上下载这两个文件。有可能程序运行时也还需要glaux.dll支持,也可以一并下载