博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeblocks配置GLUT
阅读量:4156 次
发布时间:2019-05-25

本文共 2253 字,大约阅读时间需要 7 分钟。

原文地址:

一份在codeblocks下配置OPENGL GLUT的简单教程。

一:下载安装codeblock10.05 
    到http://www.codeblocks.org下载codeblock,建议下载带MinGW编译器版本(GCC compiler and GDB debugger), 
    这样基本不需要什么特殊配置。之后运行安装文件,一步步安装到结束。 
    这里特别说明一下,我的计算机运行着windows 7 64位系统。

二:下载编译好的GLUT库。 
    可以到OPENGL的老巢自己寻找需要的GLUT(http://www.opengl.org/),有很多的不同版本! 
    我使用的是GLUT-3.7.6,可以到下面的页面下载。

三:安装glut 
    解压glut-3.7.6-bin.zip压缩包,复制解压后的文件到对应位置. (位置每个人都不一样,前两个就是复制到CodeBlock的安装目录中的一些文件,我的就是在D盘)

    glut.h       C:\Program Files (x86)\CodeBlocks\MinGW\include\GL 
    glut32.lib   C:\Program Files (x86)\CodeBlocks\MinGW\lib 
    glut32.dll   C:\Windows\system

四:创建Glut项目 
创建Glut项目

指定GLUT的位置,我的是C:\Program Files (x86)\CodeBlocks\MinGW

五:示例源代码:

//windows头文件#include 
#include
#include
#include
/* linux头文件#include
#include
#include
#include
#include
*/static GLfloat spin = 0.0; void init(void){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_FLAT);} void display(void){ glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); glRotatef(spin,0.0,0.0,1.0); glColor3f(1.0,1.0,1.0); glRectf(-25.0,-25.0,25.0,25.0); glPopMatrix(); glutSwapBuffers();} void spinDisplay(void){ spin = spin + 2.0; if(spin > 360.0) spin = spin - 360.0; glutPostRedisplay();} void reshape(int w, int h){ glViewport(0,0,(GLsizei) w, (GLsizei) h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-50.0,50.0,-50.0,50.0,-1.0,1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity();} void mouse(int button,int state,int x, int y){ switch(button) { case GLUT_LEFT_BUTTON: if(state == GLUT_DOWN) glutIdleFunc(spinDisplay); break; case GLUT_MIDDLE_BUTTON: if(state == GLUT_DOWN) glutIdleFunc(NULL); break; default: break; }} int main(int argc,char ** argv){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB); glutInitWindowSize(250,250); glutInitWindowPosition(100,100); glutCreateWindow(argv[0]); init(); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMouseFunc(mouse); glutMainLoop(); return 0;}

六:编译运行

    这个示例也可以在Linux下编译运行,效果和windows下一样,注意需要修改一下头文件,见上面源码。 
下面是makefile,在不同版本的linux下,makefile文件内容可能需要调整!

all:doubleCC=gcc double:double.c    $(CC) -Wall -g -I/usr/include/GL double.c -o double -L/usr/lib -L/usr/X11R6/lib -lGL -lGLU -lX11 -lglut#-lglut -lGLU -lGL -lXmu -lX11

编译

运行

转载地址:http://ulwxi.baihongyu.com/

你可能感兴趣的文章
IntelliJ IDAE 2018.2 汉化
查看>>
Openwrt源码下载与编译
查看>>
我和ip_conntrack不得不说的一些事
查看>>
Linux 查看端口使用情况
查看>>
文件隐藏
查看>>
两个linux内核rootkit--之二:adore-ng
查看>>
两个linux内核rootkit--之一:enyelkm
查看>>
关于linux栈的一个深层次的问题
查看>>
rootkit related
查看>>
配置文件的重要性------轻化操作
查看>>
又是缓存惹的祸!!!
查看>>
为什么要实现程序指令和程序数据的分离?
查看>>
我对C++ string和length方法的一个长期误解------从protobuf序列化说起(没处理好会引起数据丢失、反序列化失败哦!)
查看>>
一起来看看protobuf中容易引起bug的一个细节
查看>>
无protobuf协议情况下的反序列化------貌似无解, 其实有解!
查看>>
make -n(仅列出命令, 但不会执行)用于调试makefile
查看>>
makefile中“-“符号的使用
查看>>
go语言如何从终端逐行读取数据?------用bufio包
查看>>
go的值类型和引用类型------重要的概念
查看>>
求二叉树中结点的最大值(所有结点的值都是正整数)
查看>>