之前用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----