虽然用的是64位的操作系统,但是写的Opengl+VS2012的程序还是32位的,所以下面的配置过程是针对64位系统的32位程序开发的。
1,文件准备:在sourceforge上下载freeglut和glew,我是2015-10-22号下载的freeglut-2.8.1和glew-1.13.0-win32,好像都不是最新版,但是也差不多了,下载后解压。
2,freeglut库编译:在freeglut-2.8.1\VisualStudio\2012下,用VS2012打开freeglut.sln,里面总共10个工程,用win32,release模式进行编译,编译成功后,生成的文件在freeglut-2.8.1\lib文件夹下,其中freeglut.lib和freeglut.dll就是我们需要的。当然,项目可能编译不通过,一般只是项目设置的问题,百度一下都能解决。另外说明一点,这里为什么没有用直接用glut库,因为现在的freeglut已经基本包含了所有的glut功能,而glut现在的最新版是3.7,目前该项目已经废止了,98年8月之后就已经没怎么更新过了。
3,复制文件:①.h头文件:在VS2012的安装目录下打开VC\include文件夹,我的是就是D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include,在该文件夹下新建一个文件夹,改名为GL,将freeglut-2.8.1\include\GL中的.h文件全部复制到新建的文件夹内(共4个),将glew-1.13.0\include\GL下的.h头文件也复制到刚才新建的GL文件夹下(工3个};②.lib静态文件:将freeglut.lib和glew-1.13.0\lib\Release\Win32中的glew32.lib和glew32s.lib复制到VC\lib文件夹下;③.dll动态链接库:将freeglut.dll和glew-1.13.0\bin\Release\Win32文件夹下的glew32.dll文件复制到C:\Windows\SysWOW64中。至此,基本就配置完成了。
4,测试:用VS2012新建一个空的Win32控制台应用程序,再添加一个.cpp文件,代码如下:
1,文件准备:在sourceforge上下载freeglut和glew,我是2015-10-22号下载的freeglut-2.8.1和glew-1.13.0-win32,好像都不是最新版,但是也差不多了,下载后解压。
2,freeglut库编译:在freeglut-2.8.1\VisualStudio\2012下,用VS2012打开freeglut.sln,里面总共10个工程,用win32,release模式进行编译,编译成功后,生成的文件在freeglut-2.8.1\lib文件夹下,其中freeglut.lib和freeglut.dll就是我们需要的。当然,项目可能编译不通过,一般只是项目设置的问题,百度一下都能解决。另外说明一点,这里为什么没有用直接用glut库,因为现在的freeglut已经基本包含了所有的glut功能,而glut现在的最新版是3.7,目前该项目已经废止了,98年8月之后就已经没怎么更新过了。
3,复制文件:①.h头文件:在VS2012的安装目录下打开VC\include文件夹,我的是就是D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include,在该文件夹下新建一个文件夹,改名为GL,将freeglut-2.8.1\include\GL中的.h文件全部复制到新建的文件夹内(共4个),将glew-1.13.0\include\GL下的.h头文件也复制到刚才新建的GL文件夹下(工3个};②.lib静态文件:将freeglut.lib和glew-1.13.0\lib\Release\Win32中的glew32.lib和glew32s.lib复制到VC\lib文件夹下;③.dll动态链接库:将freeglut.dll和glew-1.13.0\bin\Release\Win32文件夹下的glew32.dll文件复制到C:\Windows\SysWOW64中。至此,基本就配置完成了。
4,测试:用VS2012新建一个空的Win32控制台应用程序,再添加一个.cpp文件,代码如下:
#include <GL/glut.h>
#pragma comment (lib, "glew32.lib")
void init() {
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f, 1.0f, 0.0f);
glRectf(-0.6f, -0.6f, 0.6f, 0.6f);
glFlush();
}
int main(int argc, char* argv[]){
glutInit(&argc, argv);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 300);
glutInitDisplayMode(GLUT_RGBA);
glutCreateWindow("opengl");
glewInit();
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
如果能编译通过,且出现如图所示结果,则说明配置基本正确了。
另外做一点说明,虽然是用VS2012编译的freeglut库,但本人亲测在VS2013上也能使用,而且暂时也没出现什么bug,而且实际上我用到的系统是Win10 64bit,但Win7完全相同,因为在换系统之前,我也做了同样的测试。