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

posted @ 2021-07-14 15:51  tianli3151  阅读(525)  评论(0编辑  收藏  举报