Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do I get an undefined reference( to `glColor3f' ,for example) when I compile a program in c?

I'm compiling an example program that uses opengl in ubuntu (linux). A short snippet of the code is the following:

 #include <stdlib.h> 

 #include <GL/glut.h>


 void createBox( GLfloat centroX, GLfloat centroY,
                       GLfloat corR, GLfloat corG, GLfloat corB )
 {
    /* Cor  */

    glColor3f( corR, corG, corB );

I've installed all of the packages to develop in opengl (in ubuntu), namely:

freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa
libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev

I compile the example like this:

gcc -lGL   CG_ex04.c -o main

and I get the following

/tmp/ccDWmJDZ.o: In function `createBox':
CG_ex04.c:(.text+0x31): undefined reference to `glColor3f'

and other errors along the same line.

Does anyone know what I'm doing wrong?

Thanx in advance for any help.

like image 373
dasen Avatar asked Nov 14 '10 18:11

dasen


1 Answers

Try gcc -o main CG_ex4.c -lGL. The correct order of gcc parameters is important.

like image 120
bjoernz Avatar answered Oct 22 '22 04:10

bjoernz