与vs配置opencv类似
1.首先先找到自己系统里OpenGL相关.h.lib .dll的位置
一般系统里已自带,只要去找到就好,我的位置:
gl.h C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl
OpenGL32.Lib GlU32.Lib C:\Program Files\MicrosoftSDKs\Windows\v6.0A\Lib
opengl32.dll glu32.dll C:\Windows\SysWOW64
2.下载freeglut
freeglut下载地址 http://freeglut.sourceforge.net/index.php#download
3.用CMake编译生成freeglut.sln
打开CMake,没有的去这里下载并安装https://cmake.org/download/
选好目录,点Configure选好需要的编译器,完成后点Generate
注意:将CMAKE_INSTALL_PREFIX 路径设为自己的安装路径
将FREEGLUT_BUILD_STATIC_LIBS 去掉不然在vs install时会报错
4. 放置编译好的lib, dll
根据opengl 相关位置
gl.h C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl
OpenGL32.Lib GlU32.Lib C:\Program Files\MicrosoftSDKs\Windows\v6.0A\Lib
opengl32.dll glu32.dll C:\Windows\SysWOW64
放置freeglut文件位置:
将freeglut-3.0.0\include\GL下4个.h放到 C:\ProgramFiles\Microsoft SDKs\Windows\v6.0A\Include\gl
freeglut.lib freeglut_static.lib 放到C:\ProgramFiles\Microsoft SDKs\Windows\v6.0A\Lib
(注意VS生成的如果为64位,则需放在C:\ProgramFiles\Microsoft SDKs\Windows\v6.0A\Lib\x64目录下)
freeglut.dll 放到 C:\Windows\system32
5.验证freeglut安装成功
打开VS,新建项目,配置项目属性,附加依赖项opengl32.libfreeglut.lib 与OpenCV添加包含目录、依赖库一样。
1. #include <windows.h>
2. #include <gl/freeglut.h>
3.
4. void myDisplay(void)
5. {
6. glClear(GL_COLOR_BUFFER_BIT);
7. glColor3f(1.0,0,0);
8. glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
9. glFlush();
10. }
11. int main(int argc, char *argv[])
12.
13. {
14. glutInit(&argc, argv);
15. glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
16. glutInitWindowPosition(100, 100);
17. glutInitWindowSize(400, 400);
18. glutCreateWindow("第一个OpenGL程序");
19. glutDisplayFunc(&myDisplay);
20. glutMainLoop();
21. return 0;
22. }
按F5运行,会看一个红色正方形,说明freeglut配置成功!
这里在提供一个有用的测试例子,可以测试显卡信息,当前显卡支持的OpenGL版本:
1. #include<windows.h>
2. #include <stdio.h>
3. #include <GL/freeglut.h>
4.
5. int main(int argc, char** argv)
6. {
7. glutInit(&argc,argv);
8. //显示模式初始化
9. glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
10. //定义窗口大小
11. glutInitWindowSize(300,300);
12. //定义窗口位置
13. glutInitWindowPosition(100,100);
14. //创建窗口
15. glutCreateWindow("OpenGL Version");
16. const GLubyte* name = glGetString(GL_VENDOR); //返回负责当前OpenGL实现厂商的名字
17. const GLubyte* biaoshifu = glGetString(GL_RENDERER); //返回一个渲染器标识符,通常是个硬件平台
18. const GLubyte* OpenGLVersion =glGetString(GL_VERSION); //返回当前OpenGL实现的版本号
19. const GLubyte* gluVersion= gluGetString(GLU_VERSION); //返回当前GLU工具库版本
20. printf("OpenGL实现厂商的名字:%s\n", name);
21. printf("渲染器标识符:%s\n", biaoshifu);
22. printf("OOpenGL实现的版本号:%s\n",OpenGLVersion );
23. printf("OGLU工具库版本:%s\n", gluVersion);
24.
25. system("pause");
26.
27. return 0;
28. }