一、freeglut3.0
freeglut是opengl的窗口工具库,源码下载地址 http://sourceforge.net/projects/freeglut/
二、获取预编译的头文件,lib和dll
freeglut2.x都是直接提供预编译库的,所以freeglut2.x的配置方法并不能直接适用于freeglut3.0。
freeglut3.0只提供源码和头文件,没有直接的lib库和dll库,但可以通过cmake编译生成。
读者可以自行进行cmake编译,或者直接下载我编译整合好的文件(包括头文件,lib,和dll)
三、vs 2013 配置freeglut3.0
这个文件的配置方法和glut的配置一样
把include目录下的GL复制到C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include下
把dll下的文件复制到c:\windows\system32 或 c:\windows\sysWow64下 (为了保险最好两个里都复制)
把lib下的文件复制到C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib下
然后可以建一个win32控制台程序,把本文最后的代码复制到主程序,运行就好了。
三、除了上面的方法,这里提供另一种方法,将freeglut配置到自己的工程里 (如果完成了步骤三,这步可以跳过)
下面默认已经获得了头文件,lib和dll。
用vs创建一个c++控制台程序
在工程上右键,选择 [属性](最后一项)--> [VC++目录]
在【包含目录】中添加 freeglut3/include/GL,freeglut3是你解压的freeglut3包的位置,比如我的是
在【库目录中】添加 freeglut3/lib,freeglut3是你解压的freeglut3包的位置,比如我是
三、运行小程序
将下面代码加入主程序
// opengltest.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #define NDEBUG<span style="white-space:pre"> </span>// 表示不使用debug的lib,使用release的lib,如果去除,将使用debug的lib #include <glut.h> <span style="white-space:pre"> </span>// 如果这里编译报错,请改为 #include <gl/glut.h> void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); glRectf(-0.5f, -0.5f, 0.5f, 0.5f); glFlush(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400); glutCreateWindow("第一个OpenGL程序"); glutDisplayFunc(&myDisplay); glutMainLoop(); return 0; }
四、用release模式运行:
如果直接删除上面代码中的
#define NDEBUG
程序可能运行时报错如下:这个错误表明程序没有找到freeglut的dll文件,将freeglut3中的dll下的freeglut拷到工程的exe相同的目录中即可,比如我是
或者更普遍的做法是把这个dll复制到系统的dll库目录下,一般是C:\Windows\System32, 同时要确保该路径添加到了环境变量PATH中