Ubuntu环境下开发OpenGL
几年前买了一本《计算机图形学》一直放在书架上没翻过,昨天同事也买了一本我才想起来有这么一本书。。。买了不能浪费呀,今天翻开来在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函数找不到。