Почему я получаю неопределенную ссылку (например, на glColor3f), когда я компилирую программу в c? - PullRequest
4 голосов
/ 14 ноября 2010

Я собираю пример программы, которая использует opengl в Ubuntu (Linux). Краткий фрагмент кода выглядит следующим образом:

 #include <stdlib.h> 

 #include <GL/glut.h>


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

    glColor3f( corR, corG, corB );

Я установил все пакеты для разработки в opengl (в ubuntu), а именно:

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

Я компилирую пример следующим образом:

gcc -lGL   CG_ex04.c -o main

и я получаю следующее

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

и другие ошибки в той же строке.

Кто-нибудь знает, что я делаю не так?

Заранее благодарим за любую помощь.

Ответы [ 2 ]

8 голосов
/ 14 ноября 2010

Попробуйте gcc -o main CG_ex4.c -lGL.Правильный порядок параметров gcc важен.

0 голосов
/ 14 ноября 2010

Попробуйте включить GL / gl.h, а также перенасыщение. Хотя это довольно странно, так как перенасыщение включает в себя как gl.h, так и glu.h.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...