编译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...

opengl glut 编译

新建工程glut dll工程,本来想创建lib,工程的,但是想起来,gl是状态机机制。dll方便资源共享等。 添加两个include目录 各种手机电脑平台,网络多媒...

vs2010编译glut-3.7

下好了glut(http://www.opengl.org/resources/libraries/glut/glut37.zip)后肯定想着编译它, 于是乎问题出现了, 编译通不过... 首先...

windows下安装opengl的glut库

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

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

VS2010编译glut-3.7

下好了glut(http://www.opengl.org/resources/libraries/glut/glut37.zip)后肯定想着编译它, 于是乎问题出现了, 编译通不过...首先你要修改...
  • Augusdi
  • Augusdi
  • 2014年02月18日 11:01
  • 3487

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

VS2013配置glfw和glew说明

市面上很多库 glfw glew freeglut 等等 这些都可以在官网下载。 编译这些很简单 下个Cmake软件就可以自己编译 配置我看网上很多说的比较复杂这里理清一下。 加载库 1、首先看你需要...

编译glew

给opgltest解决方案,添加glew支持,opgltest创建参考 http://blog.csdn.net/arkadia2/article/details/52350553 vs2012使...

在Windows/Ubuntu下安装OpenGL环境(GLUT/freeglut)与跨平台编译(mingw/g++)

GLUT/freeglut 是什么? OpenGL 和它们有什么关系? OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用。如果需要在程序里直接使用Open...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译glut
举报原因:
原因补充:

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