Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Re: Petite question au sujet de l'installation d'openGL / GLUT

1 réponse
Avatar
Sylvain SAUREL
En fait, j'ai utilis=C3=A9 la ligne de compilation qui nous a =C3=A9t=C3=A9=
fourni en TP par le prof.
Apparemment il disait qu'il fallait linker avec les librairies en rapport a=
vec le serveur X.

Mais je viens d'essayer sans et effectivement =C3=A7a marche bien.

Quel est l'int=C3=A9r=C3=AAt de linker avec les librairies en rapport avec =
le serveur X (je pensais que c'=C3=A9tait pour le fen=C3=AAtrage mais appar=
emment =C3=A7a marche sans) ? Dans quel cas le faire ou ne pas le faire alo=
rs ?

Merci d'avance.


> Message du 19/09/05 23:08
> De : "Simon BZ" <siborgz@gmail.com>
> A : debian-user-french@lists.debian.org
> Copie =C3=A0 :=20
> Objet : Re: Petite question au sujet de l'installation d'openGL / GLUT
>=20
> On 9/19/05, Sylvain SAUREL <sylvain.saurel@wanadoo.fr> wrote:
> >=20
> > Bonjour,
> >=20
> > Je suis en train d'essayer d'installer glut et openGL sur ma debian Sar=
ge=20
> > 3.1
> > Pour glut, j'ai pris les packages via l'utilitaire apt-get.
> >=20
> > J'ai cr=C3=A9e un petit programme en C se servant de glut et d'openGL p=
our=20
> > tester le tout :
> >=20
> > #include <GL/glut.h>
> >=20
> > void affichage(void)
> > {
> > glClear(GL_COLOR_BUFFER_BIT);
> > glFlush();
> > }
> >=20
> > void redim(int width, int height)
> > {
> > glViewport(0, 0, width, height);
> > }
> >=20
> > int main(int argc, char **argv)
> > {
> > glutInit(&argc,argv);
> > glutInitWindowSize(400,400);
> > glutWindowPosition(200,100);
> > glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
> >=20
> > glutCreateWindow("Fenetre 1");
> >=20
> > glutDisplayFunc(affichage);
> > glutReshapeFunc(redim);
> >=20
> > glutMainLoop();
> >=20
> > return 0;
> > }
> >=20
> >=20
> > Pour compiler j'utilise la ligne suivante :
> >=20
> > gcc -o prog prog1.c -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm
> >=20
> > La, j'obtiens l'erreur suivant =C3=A0 l'=C3=A9dition des liens :
> >=20
> > /usr/bin/ld: ne peut trouver -lXmu
> > collect2: ld a retourn=C3=A9 1 code d'=C3=A9tat d'ex=C3=A9cution
> >=20
> >=20
> > J'ai donc chercher les librairies pouvant =C3=AAtre en rapport avec Xmu=
avec=20
> > apt-cache search et j'ai install=C3=A9 toutes celles en rapport mais j'=
ai=20
> > toujours le m=C3=AAme probl=C3=A8me =C3=A0 l'=C3=A9dition des liens.
> >=20
> > Est-ce que quelqu'un pourrait me dire ce que je dois modifier ou instal=
ler=20
> > en plus pour que l'=C3=A9dition des liens se passe correctement ?
> > Et pour openGL, j'aimerais savoir les packages que vous me conseillez p=
our=20
> > une installation normale ?
> >=20
> > Merci d'avance de votre aide.
>=20
>=20
> Pourquoi veux-tu linker avec Xmu pour ton application ?
>=20
> Avec ce que je vois, seuls -lglut et -lGL semble =C3=AAtre n=C3=A9cessair=
es =C3=A0 la=20
> compilation de=20
> ton programme =C3=A0 ce stade. Si tu as bien install=C3=A9 openGL et glut=
, =C3=A7a devrait=20
> compiler !
>

1 réponse

Avatar
Sylvain Sauvage
Lundi 19 septembre 2005, 23:47:14 CEST, Sylvain SAUREL a écrit :
^^^
zut, ça commençait bien ;o)
[... du lien de bibliothèques ...]
Dans quel cas le faire ou ne pas le faire alors ?



Il faut lier une bibliothèque seulement lorsque l'on s'en sert. (Lier
des bibliothèques non utilisées ne gêne pas : cela fait juste du code mort
(beaucoup si statique, peu si dynamique).)

Se servir d'une bibliothèque signifie utiliser des fonctions qu'elle
met en œuvre. En clair, cela veut dire qu'il y un #include<toto.h> quelque
part, avec toto.h qui représente une interface à la bibliothèque
(déclaration des fonctions et structures).
Pour la libXmu, toto.h serait quelque chose comme X11/Xmu/toto.h

--
Sylvain Sauvage


--
Pensez