红联Linux门户
Linux帮助

我的首个linux OpenGL程序(ubuntu)

发布时间:2007-11-05 10:17:38来源:红联作者:DrearsCma
[配置稍微麻烦]
虽然预计在 ubuntu 下会比 windows 下麻烦一些,但是还是准备不足。开始是少装了一个包,后来加错编译参数……出于防止以后忘记,以及顺便增加 blog 内容,把我这一个小时的撞墙经过记录下来。

[准备工作]
要想编写基于 cpp 的 OpenGL 程序,我们首先要准备文本编辑器、C++ 编译器以及 OpenGL&GLut 库文件。

ubuntu 系统自带了一些文本编辑器:老手使用的 vim,及新手使用的 gedit。由于无论是在 linux 方面还是 openGL/Glut 方面,在下都是先行量产型的新手(都语无伦次了-_-b),所以就大大方方的揪出 gedit 用了。

linux 下的 gcc 编译器(集合)是相当出名的,可惜 ubuntu 没有自带,需要自行安装。在命令行输入:

sudo apt-get install build-essential

实际上 build-essential 不是编译器,只是一堆软件包的依赖关系。装了它,一般的编译器的问题就基本解决了。

解下了就是 OpenGL/Glut 库的问题了。同样,在终端里输入:

sudo apt-get install freeglut3 freeglut3-dev libglut3 libglut3-dev libgl1-mesa libgl1-mesa-dev

我就是那少了一个的悲惨男子啊~~以后还是先在论坛里翻翻再动手比较好T_T。

[还是差不多的代码]
#include
#include

void RenderScene( void )
{
glClear( GL_COLOR_BUFFER_BIT ) ;
glFlush() ;
}

void SetupRC( void )
{
glClearColor( 1.0f, 0.0f, 0.0f, 1.0f ) ;
}

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB ) ;
glutCreateWindow( "Simple" ) ;
glutDisplayFunc( RenderScene ) ;

SetupRC() ;

glutMainLoop() ;
return 0;
}

[编译的关键在于参数]
使用 gcc 不同于在 vs.net 中,IDE 帮你做了很多事。这里,我们需要自己输入编译参数:

g++ opgl.cc -o out.o -lglut -lGL -lGLU -lm -L/usr/X11R6/lib

之后,成了!
文章评论

共有 1 条评论

  1. longinus 于 2008-04-07 23:18:00发表:

    好歹注明一下出处,而且不要擅自改动!

    这里是原文