PDA

View Full Version : undefined ref to glutLeaveMainLoop



Nauhaie
11-03-2004, 11:13 AM
Hi all,
I have a big problem (well, for me, it's big, but I am sure it's nothing for you!).

I am using freeglut, and the magic glutLeaveMainLoop function.

Freeglut is installed and working. I have no problem using freeglut, except when I try to glutLeaveMainLoop. It says 'undefined reference to 'glutLeaveMainLoop''. I have been trying for hours to figure out why, but I can't!

I have tried replacing freeglut by openglut (no, I didn't forget to change the includes!), and nothing!

I would be very grateful if someone can help me!!!

Here is my code:



#include <GL/freeglut_std.h>
#include <GL/freeglut_ext.h>
#include <stdlib.h>

void quad()
{
glBegin(GL_QUADS);
glVertex2f( 0.0f, 1.0f); // Top Left
glVertex2f( 1.0f, 1.0f); // Top Right
glVertex2f( 1.0f, 0.0f); // Bottom Right
glVertex2f( 0.0f, 0.0f); // Bottom Left
glEnd();
}

void draw()
{
// Make background colour black
glClearColor( 0, 0, 0, 0 );
glClear ( GL_COLOR_BUFFER_BIT );

// Push the matrix stack - more on this later
glPushMatrix();

// Set drawing colour to blue
glColor3f( 0, 0, 1 );

// Move the shape to middle of the window
// More on this later
glTranslatef(-0.5, -0.5, 0.0);

// Call our Quad Method
quad();

// Pop the Matrix
glPopMatrix();

// display it
glutSwapBuffers();
}

// Keyboard method to allow ESC key to quit
void keyboard(unsigned char key,int x,int y)
{
if(key==27){
glutLeaveMainLoop();
}
}


int main(int argc, char **argv)
{
// Double Buffered RGB display
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE);
// Set window size
glutInitWindowSize( 500,500 );
glutCreateWindow("Test");
// Declare the display and keyboard functions
glutDisplayFunc(draw);
glutKeyboardFunc(keyboard);
// Start the Main Loop
glutMainLoop();
}

Rawk
11-05-2004, 01:25 PM
Hi,

I've never seen that function before, cool!

A little searching reveals that older versions of GLUT, even free and open did not support this.

Since you don't do anything after you leave the main loop, you might consider just calling exit().

-Rawk