几年前买了一本《计算机图形学》一直放在书架上没翻过,昨天同事也买了一本我才想起来有这么一本书。。。买了不能浪费呀,今天翻开来在Ubuntu里面动手试了下书上的第一个OpenGL程序,中间遇到些问题但都通过万能的谷歌找到了解决办法,这里整理记录一下。
首先我按书上给的代码完全没有理解的情况下照打了一遍,下面就是实验代码:
#include <GL/glut.h>
void lineSegment(void) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex2i(180, 15);
glVertex2i(10, 145);
glEnd();
glFlush();
}
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(50, 100);
glutInitWindowSize(400, 300);
glutCreateWindow("Hello OpenGL");
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0, 200.0, 0.0, 150.0);
glutDisplayFunc(lineSegment);
glutMainLoop();
return 0;
}
然后我试了下编译这个代码,但是会提示找不到 GL/glut.h 文件,显然是因为没有安装OpenGL相关的库,上网搜了一下,Ubuntu安装OpenGL库用以下命令:
sudo apt-get install freeglut3-dev
安装好以后再编译,错误信息变了,提示找不到一些函数,很显然是因为连接器链接相应的库文件,自己尝试了-lopengl和-lgl,都不行,再次求助谷歌,得到一下结果:
cc main.c -lglut -lGL -lGLU
后面的-lGL对编译上面的程序来说是不需要的,而-lGLU其实是我第二次搜索得到的答案,如果没有指定-lGLU或者写成了-lglu都会导致上面代码中的gluOrtho2D函数找不到。
原标签已从 2012-01-11 存档快照 恢复。本文按原站快照恢复排版,并接回已核实的本地图片。查看恢复说明