编译glut

来源:互联网 发布:网络诈骗500元 编辑:程序博客网 时间:2024/06/05 16:31

用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)

编译,运行


0 0