Compiler un prog C/OpenGL avec le terminal
Math
Membre
Bonjour,
Y a un truc que je comprends pas alors je vous pose la question
J'essaye de compiler de petits programmes opengl mais je n'y arrive pas.
En fait je fais ça :
1 - je télécharge un exemple de programme en C avec de l'openGL sur le net (utilisant la glut)
2 - je change le #include <GL/glut.h> en #include <GLUT/glut.h> (et GL/gl.h en OpenGL/gl.h et GL/glu.h en OpenGL/glu.h si nécessaire)
3 - je compile avec le terminal et la commande gcc essai.c -o essai
et j'obtiens :
et je comprend pas du tout pourquoi.
Quelqu'un aurait une idée ?
Merci d'avance.
Y a un truc que je comprends pas alors je vous pose la question
J'essaye de compiler de petits programmes opengl mais je n'y arrive pas.
En fait je fais ça :
1 - je télécharge un exemple de programme en C avec de l'openGL sur le net (utilisant la glut)
2 - je change le #include <GL/glut.h> en #include <GLUT/glut.h> (et GL/gl.h en OpenGL/gl.h et GL/glu.h en OpenGL/glu.h si nécessaire)
3 - je compile avec le terminal et la commande gcc essai.c -o essai
et j'obtiens :
/usr/bin/ld: Undefined symbols:<br />_glBegin<br />_glClear<br />_glClearColor<br />_glClearDepth<br />_glColor3f<br />_glDepthFunc<br />_glEnable<br />_glEnd<br />_glHint<br />_glLoadIdentity<br />_glMatrixMode<br />_glPopMatrix<br />_glPushMatrix<br />_glRotatef<br />_glShadeModel<br />_glTranslatef<br />_glVertex3f<br />_glViewport<br />_gluPerspective<br />_glutCreateWindow<br />_glutDisplayFunc<br />_glutFullScreen<br />_glutIdleFunc<br />_glutInit<br />_glutInitDisplayMode<br />_glutInitWindowSize<br />_glutKeyboardFunc<br />_glutMainLoop<br />_glutReshapeFunc<br />_glutReshapeWindow<br />_glutSpecialFunc<br />_glutSwapBuffers<br />collect2: ld returned 1 exit status<br />
et je comprend pas du tout pourquoi.
Quelqu'un aurait une idée ?
Merci d'avance.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bin, c'est normal !
Tu utilises des fonctions OpenGL, mais apparemment, tu n'indiques pas à gcc où trouver la library/framework dans laquelle ces fonctions sont implantées.
Donc, au moment du liage (quand les noms des fonctions sont remplacées par les références d'accès à ces dernières), le linker (qui se nomme ld) ne trouve rien et râle.
Pour ajouter les library/frameworks OpenGL à ton projet, essaie ça :
[tt]gcc essai.c -framework GLUT -framework OpenGL -o essai [/tt]
.
Je me doutais qu'il fallait faire un truc dans le genre car sur le net je trouvais des exemples avec -L lglut mais c'était pour linux et ça ne fonctionnait pas sur le Mac.
Merci
Puisque, pour moi, un framework est un ensemble de librairies. Donc à la limite la commande que tu avais trouvée avec les -l était peut-être pas trop mal (mais il aurait fallu l'adapter poru spécifier les bons chemins et tout ce qu'il faut) alors qu'avec le -framework de Bru on se pose pas de question et ça marche il va chercher tout seul ce qu'il faut.