编译glut

原创 2016年08月29日 10:02:47

用vs2012编辑freeglut,

vs2012的使用可以参考

http://blog.csdn.net/arkadia2/article/details/52084211

1.下载

http://freeglut.sourceforge.net/下载freeglut 3.0.0

解压后的文件目录如下

2.搭建

2.1 新建解决方案opgltest和空项目main,目录结构如下

2.2 新建空项目freeglut,设置为dll项目

3. 增加属性页all

作为所有项目通用,freeglut和main都参用之,设置用户宏

其中SrcDir为项目源代码目录,BinDir为生成可运行程序目录,LibDir为产生的库文件(.lib)目录

4.freeglut项目添加源文件

4.1 复制freeglut的include,src代码到src/freeglut

4.2 vs2012建筛选器,添加现有文件,导入include目录,src/mswin,src/util,和src下fg_XXX文件(不要导入gles_stubs.c

4.3 设置freeglut项目属性

4.3.1 添加附包include目录$(GlutIndDir)

4.3.2 添加预处理宏

FREEGLUT_EXPORTS
_CRT_SECURE_NO_WARNINGS
NEED_XPARSEGEOMETRY_IMPL

4.3.3 添加生成事件,复制库文件到$(LibDir),dll文件到($BinDir),为后面的main项目作准备

copy $(OutDir)$(TargetName)$(TargetExt) $(BinDir)
copy $(OutDir)$(TargetName).lib $(LibDir)

编译,应该会生成freeglut.lib,freeglut.dll

5.使用freeglut

5.1 添加main.cpp到main项目,代码如下

#include <cstdio>
#include "GL/glut.h"

void display() {

}

int main(int argc, char** args) {
	glutInit(&argc, args);
	glutInitWindowPosition(100, 100);   
	glutInitWindowSize(800, 480);   
	glutInitDisplayMode(GLUT_RGBA);   

	glutCreateWindow("opgltest");   

	glutDisplayFunc(display);   

	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("OpenGL实现的版本号:%s\n",OpenGLVersion );
	printf("OGLU工具库版本:%s\n", gluVersion);

	glutMainLoop();   
	return EXIT_SUCCESS;
}

5.2 设置main项目属性

5.2.1 添加附加包含目录$(GlutIndDir)

6.2.2 添加预处理宏

NDEBUG

这里主要是因为glut内部已经使用了宏来告诉链接器要链接的库文件

5.2.3 添加附加库目录$(LibDir)

5.2.4 添加附加库文件freeglut.lib,这一步可以不用。因为定义了NDEBUG

5.2.5 添加生成事件

copy $(OutDir)$(TargetName)$(TargetExt) $(BinDir)

编译,运行


版权声明:本文为博主原创文章,未经博主允许不得转载。

windows环境下编译glut-3.7

某天在用OpenGL的GLUT库写程序,编译通过,但运行却提示“无法定位glutKeyboardUpFunc函数于glut.dll上”,但是我查看glut.h又可以发现glutKeyboardUpFu...
  • lgcacddn
  • lgcacddn
  • 2014年03月05日 22:44
  • 2721

windows下安装opengl的glut库

GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。  Windows环境下的GLUT下载地址:(大小约为150k)  http://www.opengl.org/res...
  • business122
  • business122
  • 2016年07月08日 14:25
  • 3514

vs2010编译glut-3.7

下好了glut(http://www.opengl.org/resources/libraries/glut/glut37.zip)后肯定想着编译它, 于是乎问题出现了, 编译通不过... 首先...
  • u011558856
  • u011558856
  • 2013年10月03日 17:01
  • 2255

VS 2013下 OpenGL 环境搭建(GLUT的配置)

VS 2013下 OpenGL 环境搭建(GLUT的配置)
  • duan19920101
  • duan19920101
  • 2016年11月09日 14:54
  • 872

GLUT的简洁OO封装

Member function 如何作为Callback? 这里其实是两个问题。 第一个问题,member function的函数签名上有this指针,不能直接传给glut*Func作为callba...
  • xusiwei1236
  • xusiwei1236
  • 2014年06月05日 14:07
  • 1327

glut库源码

  • 2014年01月02日 16:04
  • 8.32MB
  • 下载

freeglut和glew库整合VS2013编译

  • 2015年02月24日 14:45
  • 752KB
  • 下载

用 Visual C++ 2015 编译 FreeGLUT

问题首先说明一个问题:为什么我们需要 FreeGLUT 呢?很多老教程都会提到 GLUT,但是 GLUT 很久不更新了,为了使用更新的 OpenGL,我们需要改用 FreeGLUT。关于这个问题的解释...
  • XinYaping
  • XinYaping
  • 2016年06月15日 05:19
  • 1729

使用VS2015编译FreeGLUT

简要介绍使用VS2015编译FreeGLUT和GLEW。
  • zhuxiaoyang2000
  • zhuxiaoyang2000
  • 2015年10月17日 22:04
  • 5935

32位(x86)与64位(x64)程序中详细配置OpenGL环境小白教程

先说说题外话,OpenGL是一个跨平台优秀的三维可视化库,而在Windows中内部封装的OpenGL还是1.1版本,不吐槽,维护自身Dix3D的发展也是情有可原。如果你是Win32系统,编译环境也是W...
  • HW140701
  • HW140701
  • 2017年05月02日 09:20
  • 2953
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译glut
举报原因:
原因补充:

(最多只允许输入30个字)