之前用VS2008+OpenGL时,配置很容易,主要分为三步,(1)将glut.h文件拷贝到Visual Studio安装目录下的VC\Include\GL目录中,若没有GL目录就新建一个;(2)将glut.lib和glut32.lib拷贝到Visual Studio安装目录下的VC\lib目录中;(3)将glut.dll和glut32.dll拷贝到C:\Windows\System32目录下。这样就可以了。
但是现在用VS2010+OpenGL时,配置时发现一些问题,最后解决了。现把配置过程写下来做个记录。
第一步,将glut.h文件拷贝到"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl",可以看到这个下面已经有一个gl文件夹了。
第二步,将glut.lib和glut32.lib拷贝到Visual Studio安装目录下的VC\lib目录中;
第三步,将glut32.dll放到Visual Studio安装目录下的VC\bin目录中;
第四步,打开VS2010,新建一个控制台项目。在项目上右键,属性-> 配置属性 -> 链接器 -> 输入 -> 附加依赖项, 在其中添加三个lib文件,即opengl32.lib;glu32.lib;glut32.lib;
下面给一段测试代码:
#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("First OpenGL");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
运行后,可能会报 如下 错误:
error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用
error LNK2019: 无法解析的外部符号 __imp____glutCreateWindowWithExit@8,该符号在函数 _glutCreateWindow_ATEXIT_HACK@4 中被引用
解决方法如下:
1、工程属性->配置(设为‘所有配置’)->配置属性->C/C++->预处理器定义(设为‘GLUT_BUILDING_LIB’)
2、在#include<gl\glut.h>前一行定义定义#define GLUT_DISABLE_ATEXIT_HACK。
这两种方法可能都有效,也可能第一种无效。不过第二种方法太麻烦了,每次都要加这样一条语句。
注:glut库可在http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip上下载
参考:
1、http://vipscu.blog.163.com/blog/static/181808372201121491621756/
2、http://www.cnblogs.com/cjyang/archive/2010/10/18/1855169.html
3、http://blog.csdn.net/zhongjling/article/details/7532128
----The End----