OpenGL入门(一)
来源:互联网 发布:怎么找文献的数据 编辑:程序博客网 时间:2024/05/01 07:52
初识OpenGL,个人觉得它其实就是一个图形处理方面的SDK。
在学习一个新的SDK时,首先就是要为其准备编译环境。
个人准备在windows进行opengl小程序的编译,做一些小的demo,但又不是很想依赖VS等编译环境,所以想自己编写makefile进行opengl demo的编译工作。
首先需要准备nmake.exe cl.exe link.exe等基本的编译链接工具。
其次就是下载编译所需的sdk(包括平台的sdk,opengl的sdk),为了方便可以下载一些第三方的库。
然后就是先写一个简单程序,调用opengl 的API。
最后就是编写makefile文件,我们先命名为demo.mak。
但这里本人还没有学透makefile编写技巧,真在摸索中,等完成研究后再和大家分享。
如果有高人的话,可以帮忙指点一二,非常感谢。
搭建编译环境
下载Windows SDK,本人使用vs自带的VC SDK,存储目录如下:
E:\development\Vc7
修改环境变量,或直接编写 一个批处理文件mypath.bat
输入内容如下:
@echo off
set PATH=$(PATH);E:\development\Vc7\bin
set LIB=E:\development\Vc7\lib;E:\development\Vc7\PlatformSDK\Lib
set INCLUDE=E:\development\Vc7\PlatformSDK\Include;E:\development\Vc7\include
在编译前执行mypath.bat
下载OpenGL的sdk
配置OpenGL:
1.将开发库中的.h文件拷贝到E:\development\Vc7\include\GL目录中
2.将.lib文件拷贝到E:\development\Vc7\lib目录中
3.将.dll文件拷贝到操作系统的system32目录中
创建一个简单的OpenGL程序main.cpp
#include <GL/glut.h>
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
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;
}
编写Makefile
LINK32 = link.exe
LINK32_OBJS = \
main.obj
Test.exe : $(LINK32_OBJS)
$(LINK32) /OUT:Test.exe $(LINK32_OBJS)
$(LINK32_OBJS) : main.cpp
#仅编译文件
cl.exe /c main.cpp
clean:
@del *.obj *.exe
@echo Project has clean.
将main.cpp和Makefile放到同一工程目录下
执行nmake
这时会提示link错误
修改main.cpp
在#include之前添加#define GLUT_DISABLE_ATEXIT_HACK
再次编译,第一个opengl程序就诞生了
执行Test.exe
- OpenGL入门学习[一]
- OpenGL入门实例(一)
- Opengl 入门学习一
- OpenGL入门学习(一)
- OpenGL入门(一)
- OpenGL入门学习(一)
- OpenGL入门(一)
- OpenGL入门学习(一)
- OpenGL入门学习[一]
- OpenGL入门学习(一)
- OpenGL入门学习(一)
- OpenGL入门一
- opengl入门一
- OpenGL入门(一)
- OpenGL入门学习笔记一
- OpenGL入门学习(一)
- OpenGL入门笔记(一)
- OpenGL入门学习(一)
- UVA11294 Wedding
- android 游戏中的声音
- socket编程中的超时设置示例详解之二
- WPF后台动态添加TabItem并设置样式
- INS-35354] The system on which you are attempting to install Oracle RAC is not part of a valid clust
- OpenGL入门(一)
- python实现SimpleHTTPServer的POST方法
- Build the seajs project 2: editing the Gruntfile
- ZOJ 2314 Reactor Cooling
- 漫谈JVM的基本垃圾回收算法
- Div+CSS+JS树型菜单
- 使用颜色(color)资源
- linux驱动学习--第一天:设备驱动概述(一)之基础知识
- 再论C++之垃圾回收(GC)