Sur ma Mandriva, j'essaye de compiler le compo 4k 2004 (des démos tenant dans 4ko de code).
Bien évidemment, ça nécessite la librairie GLU.
Je l'installe (paquet libMesaGLU1-devel) et retente la compilation.
Invariablement j'ai :
#gcc -I /usr/include/SDL -I /usr/X11R6/include/GL/ -I ../../../include -lSDL -lGL -lGLU -lm -W -lpthread -O shadowsun.c -o shadowsun
shadowsun.c: In function 'main':
shadowsun.c:169: warning: incompatible implicit declaration of built-in function 'strlen'
/usr/bin/ld: cannot find -lGLU
collect2: ld returned 1 exit status
A chaque fois, depuis des années, j'ai toujours des problèmes avec cette lib dont les headers se trouvent /usr/X11R6/include/GL/
Quelqu'un a une idée ?
# re
Posté par Sylvain (site web personnel) . Évalué à 3.
libGLU.la* libGLU.so* libGLU.so.1* libGLw.a
dans /usr/X11R6/lib/
En tout cas pour compiler du glu sur ma mandriva c'est comme ca. Sinon j'ai le meme erreur que toi.
[^] # Re: re
Posté par Ontologia (site web personnel) . Évalué à 2.
#d /usr/X11R6/lib/libG*
-rwxr-xr-x 1 root root 837 aoû 16 16:09 /usr/X11R6/lib/libGL.la*
-rwxr-xr-x 1 root root 868 aoû 16 16:09 /usr/X11R6/lib/libGLU.la*
lrwxrwxrwx 1 root root 17 déc 15 15:24 /usr/X11R6/lib/libGLU.so -> libGLU.so.1.3.502*
lrwxrwxrwx 1 root root 17 nov 4 21:48 /usr/X11R6/lib/libGLU.so.1 -> libGLU.so.1.3.502*
-rwxr-xr-x 1 root root 574024 aoû 16 16:09 /usr/X11R6/lib/libGLU.so.1.3.502*
-rw-r--r-- 1 root root 27954 sep 12 23:52 /usr/X11R6/lib/libGLw.a
lrwxrwxrwx 1 root root 13 nov 4 21:53 /usr/X11R6/lib/libGLw.so -> libGLw.so.1.0*
lrwxrwxrwx 1 root root 13 nov 4 21:48 /usr/X11R6/lib/libGLw.so.1 -> libGLw.so.1.0*
-rwxr-xr-x 1 root root 22332 sep 12 23:55 /usr/X11R6/lib/libGLw.so.1.0*
Je ne sais pas trop comment marche ld, et comme c'est gcc qui l'appelle, je ne peux jouer avec...
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: re
Posté par mrlem (site web personnel) . Évalué à 0.
A moi que je ne m'abuse (et c'est peut-être le cas), ld fonctionne de la manière suivante :
1. on lui passe -lXXX
2. il déduit que l'on cherche libXXX.so
3. il le cherche dans les chemins mentionnés dans la variable LD_LIBRARY_PATH
Mon conseil : regarde donc ta variable LD_LIBRARY_PATH pour voir si elle comprend bien les emplacements du GLU.
Après, je ne sais plus trop si cette variable sert au link ou à l'exécution (il me semble que ce n'est qu'à l'exécution), mais bon...
Si tu ne veux/peux pas la changer, je crois que le plus simple est de changer le Makefile en rajoutant aux options GCC un petit -L/usr/X11R6/lib. En fait, à y réfléchir, c'est vraiment le mieux à faire, que je sache.
Voilà.
J'espère que ça marchera (si tu n'as pas déjà résolu le problème, auquel cas ce serait bien de poster la réponse, histoire de me rafraichir la mémoire ;o)
[^] # Re: re
Posté par Ontologia (site web personnel) . Évalué à 2.
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: re
Posté par Matafan . Évalué à 2.
Il n'est pas forcément nécessaire d'être moissé pour avoir un commentaire à 0. Si tu as posté trop de messages notés négativement récemment, tes messages sont automatiquement notés 0 ou -1 dès leur créations. Ça arrive quand on poste peu, et qu'on a le malheure de poster un truc qui ne plaît pas à deux imbéciles...
Sinon pour rester dans le sujet, -L c'est pour indiquer les répertoires dans lesquel chercher les lib, et -l c'est pour se linker à une lib. Bref les lib indiqués par -l sont cherchées sous -L.
[^] # Re: re
Posté par Ontologia (site web personnel) . Évalué à 2.
J'aurai peut être du lire le man ..? mais c'est tellement fastidieux....
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
[^] # Re: re
Posté par mrlem (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.