Forum Programmation.c [Résolu] OpenGL GLUT référence indéfini

Posté par  . Licence CC By‑SA.
Étiquettes :
0
14
août
2020

Salut à tous :)

Finalement il suffisait de rajouter -lglut à la ligne de compilation

J'ai le problème référence indéfini lorsque je compile
J'ai installer freeglut3-dev donc normalement je suis capable de faire fonctionner ce code (enfin je crois) :

#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>
#include <GL/freeglut.h>
#include <GL/glx.h>
#include <GL/gl.h>

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); 
    glutInitWindowSize(1024, 768);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("Tutorial 01");
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    glutMainLoop();
    return 0;
}

comme commande de compilation je fais : gcc main.c -o test `pkg-config --libs gl`

d'ailleurs la commande pkg-config ne me donne que '-lGL' pas '-lGLU'

les références évidentes qui ne fonctionne pas :

/usr/bin/ld : /tmp/cclJzyTo.o : dans la fonction « main » :
main.c:(.text+0x22) : référence indéfinie vers « glutInit »
/usr/bin/ld : main.c:(.text+0x2c) : référence indéfinie vers « glutInitDisplayMode »
/usr/bin/ld : main.c:(.text+0x3b) : référence indéfinie vers « glutInitWindowSize »
/usr/bin/ld : main.c:(.text+0x4a) : référence indéfinie vers « glutInitWindowPosition »
/usr/bin/ld : main.c:(.text+0x56) : référence indéfinie vers « glutCreateWindow »
/usr/bin/ld : main.c:(.text+0x70) : référence indéfinie vers « glutMainLoop »

Est-ce que ça vient du fait que je n'ai pas la librairie appropriée à mon édition de liens ?
Ça me paraît bizarre vu que j'ai freeglut3-dev…
Merci d'avance :D

  • # .

    Posté par  . Évalué à 1 (+0/-0).

    Ajoute -lglut

  • # c'était si simple...

    Posté par  . Évalué à 2 (+1/-0).

    faut vraiment que je lise les documentations,
    Merci pour cette aide qui n'a pas pris trop de temps xD

    Amiralgaby#1847

    • [^] # Re: c'était si simple...

      Posté par  . Évalué à 1 (+0/-0).

      Ajouter -lglut après un pkg-config ne me semble pas propre pour tout te dire. Tu n'as pas à t'excuser. D'ailleurs, la doc officielle semble recommender -lGL -lGLU -lglut .

      • [^] # Re: c'était si simple...

        Posté par  (site Web personnel) . Évalué à 3 (+2/-0). Dernière modification le 15/08/20 à 17:34.

        Ce n'est pas propre, mais c'est hélas requis car freeglut3-dev ne fourni pas de fichier .pc, requis pour pkg-config.

        Sinon, pour également pouvoir utiliser les fonctions en glu*, au lieu de faire :

        pkg-config --libs gl

        on peut faire :

        pkg-config --libs glu

        … qui génère le -lGL -lGLU mentionné. (ça sert notamment pour certaines fonctions bien pratiques genre gluLookAt, dans mon souvenir)

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.