windows从零搭建OpenGL freeglut环境
OpenGL 视频教学材料:https://pan.baidu.com/s/1muWuuuo1_89AijQRNOcJmg
提取码:xcwn
1.首先先找到自己系统里OpenGL相关.h .lib .dll的位置
一般系统里已自带,只要去找到就好,我的位置:
gl.h C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl
OpenGL32.Lib GlU32.Lib C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
opengl32.dll glu32.dll C:\Windows\SysWOW64
2.下载freeglut
freeglut下载地址 http://freeglut.sourceforge.net/index.php#download
下载之后解压,打开查看两个README
.cmake讲如何用CMake生成sln
.win32讲编译sln产生的lib, dll放到哪里
3.用CMake编译生成freeglut.sln
打开CMake,没有的去这里下载并安装https://cmake.org/download/
选好目录,点Configure选好需要的编译器,完成后点Generate
3.编译freeglut.sln
在输出文件中找到freeglut.sln,用vs08打开,选好Debug还是Release。编译ALL_BUILD。
这里注意两点:
a.需要保证gl.h OpenGL32.Lib GlU32.Lib opengl32.dll glu32.dll所在目录已被VS包括,没有的话需要手动加入,分别配置好库文件
可执行文件,包含文件目录:
b.如果编译过程中出现Microsoft Incremental Linker已停止工作的提示,找到具体的单个项目,点右键进属性,将启用增量链接设置为否后,再重新生成。
4. 放置编译好的lib, dll
根据opengl 相关位置
gl.h C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl
OpenGL32.Lib GlU32.Lib C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
opengl32.dll glu32.dll C:\Windows\SysWOW64
放置freeglut文件位置:
将freeglut-3.0.0\include\GL下4个.h放到 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl
freeglut.lib freeglut_static.lib 放到C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
freeglut.dll 放到 C:\Windows\SysWOW64
5.验证freeglut安装成功
打开VS,新建项目,配置项目属性,附加依赖项opengl32.lib freeglut.lib
粘贴一下代码:
#include <windows.h>
#include <gl/freeglut.h>
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0,0);
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;
}
按F5运行,会看一个红色正方形,说明freeglut配置成功!
这里在提供一个有用的测试例子,可以测试显卡信息,当前显卡支持的OpenGL版本:
#include<windows.h>
#include <stdio.h>
#include <GL/freeglut.h>
int main(int argc, char** argv)
{
glutInit(&argc,argv);
//显示模式初始化
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
//定义窗口大小
glutInitWindowSize(300,300);
//定义窗口位置
glutInitWindowPosition(100,100);
//创建窗口
glutCreateWindow("OpenGL Version");
const GLubyte* name = glGetString(GL_VENDOR); //返回负责当前OpenGL实现厂商的名字
const GLubyte* biaoshifu = glGetString(GL_RENDERER); //返回一个渲染器标识符,通常是个硬件平台
const GLubyte* OpenGLVersion =glGetString(GL_VERSION); //返回当前OpenGL实现的版本号
const GLubyte* gluVersion= gluGetString(GLU_VERSION); //返回当前GLU工具库版本
printf("OpenGL实现厂商的名字:%s\n", name);
printf("渲染器标识符:%s\n", biaoshifu);
printf("OOpenGL实现的版本号:%s\n",OpenGLVersion );
printf("OGLU工具库版本:%s\n", gluVersion);
system("pause");
return 0;
}
————————————————
版权声明:本文为CSDN博主「MIPS71」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/linian71/article/details/68485494