在Ubuntu中编译GLUT出错了。
在Ubuntu中编译GLUT出错了。
这个问题已经有了答案:
我尝试编译一些“hello world”的glut应用程序:
#include #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h> GLint Width = 512, Height = 512; const int CubeSize = 200; void Display(void) { int left, right, top, bottom; left = (Width - CubeSize) / 2; right = left + CubeSize; bottom = (Height - CubeSize) / 2; top = bottom + CubeSize; glClearColor(0, 0, 0, 1); glClear(GL_COLOR_BUFFER_BIT); glColor3ub(255,0,0); glBegin(GL_QUADS); glVertex2f(left,bottom); glVertex2f(left,top); glVertex2f(right,top); glVertex2f(right,bottom); glEnd(); glFinish(); } void Reshape(GLint w, GLint h) { Width = w; Height = h; glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, w, 0, h, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void Keyboard(unsigned char key, int x, int y) { #define ESCAPE '\033' if( key == ESCAPE ) exit(0); } main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB); glutInitWindowSize(Width, Height); glutCreateWindow("Red square example"); glutDisplayFunc(Display); glutReshapeFunc(Reshape); glutKeyboardFunc(Keyboard); glutMainLoop(); }
编译命令是:
gcc -lGL -lGLU hw_opengl.cpp -o hw_opengl
我得到了以下错误:
/tmp/ccbnBFHC.o: In function `Display()': hw_opengl.cpp:(.text+0x6c): undefined reference to `glClearColor' hw_opengl.cpp:(.text+0x78): undefined reference to `glClear' hw_opengl.cpp:(.text+0x94): undefined reference to `glColor3ub' hw_opengl.cpp:(.text+0xa0): undefined reference to `glBegin' hw_opengl.cpp:(.text+0xb4): undefined reference to `glVertex2f' hw_opengl.cpp:(.text+0xc8): undefined reference to `glVertex2f' hw_opengl.cpp:(.text+0xdc): undefined reference to `glVertex2f' hw_opengl.cpp:(.text+0xf0): undefined reference to `glVertex2f' hw_opengl.cpp:(.text+0xf5): undefined reference to `glEnd' hw_opengl.cpp:(.text+0xfa): undefined reference to `glFinish' /tmp/ccbnBFHC.o: In function `Reshape(int, int)': hw_opengl.cpp:(.text+0x134): undefined reference to `glViewport' hw_opengl.cpp:(.text+0x140): undefined reference to `glMatrixMode' hw_opengl.cpp:(.text+0x145): undefined reference to `glLoadIdentity' hw_opengl.cpp:(.text+0x173): undefined reference to `glOrtho' hw_opengl.cpp:(.text+0x17f): undefined reference to `glMatrixMode' hw_opengl.cpp:(.text+0x184): undefined reference to `glLoadIdentity' /tmp/ccbnBFHC.o: In function `main': hw_opengl.cpp:(.text+0x1c1): undefined reference to `glutInit' hw_opengl.cpp:(.text+0x1cd): undefined reference to `glutInitDisplayMode' hw_opengl.cpp:(.text+0x1e4): undefined reference to `glutInitWindowSize' hw_opengl.cpp:(.text+0x1f0): undefined reference to `glutCreateWindow' hw_opengl.cpp:(.text+0x1fc): undefined reference to `glutDisplayFunc' hw_opengl.cpp:(.text+0x208): undefined reference to `glutReshapeFunc' hw_opengl.cpp:(.text+0x214): undefined reference to `glutKeyboardFunc' hw_opengl.cpp:(.text+0x219): undefined reference to `glutMainLoop' collect2: ld returned 1 exit status
我已经安装了GLUT:
sudo apt-get install freeglut3 freeglut3-dev
它们在/usr/lib中:
libglut.a
libglut.so
libglut.so.3
libglut.so.3.9.0
locate glu.h /home/goran/QtSDK/QtSources/4.8.0/src/3rdparty/webkit/Source/ThirdParty/glu/internal_glu.h /usr/include/GL/glu.h /usr/include/GL/gl.h locate gl.h ... /usr/include/GL/gl.h
我做错了什么?
admin 更改状态以发布 2023年5月23日