Bonjour mon petit journal,
Maintenant que j'ai enfin l'accélération 3D, j'ai essayé d'installer quelques jeux, histoire de profiter un peu de mon dur (ca fait longtemps que j'attendais ca) labeur :-). La distrib est une mandrake 9.1.
Malheureusement, si les jeux version RPM que j'ai installé fonctionnent bien, ce n'est pas vraiment le cas de de ceux à compiler, puisque cette étape échoue pour la plupart d'entre eux.
Par exemple, j'essaie de compiler le jeu Possible World, qui m'a tapé dans l'oeil ;) :
La doc sur le site précise qu'il faut :
Mesa3D tuned for your Graphics board
SDL 1.2.0 or later
FMOD Audio library (included in source-archive)
Je fais :
# urpmi Mesa
tout est déjà installé
# urpmi SDL
tout est déjà installé
Mais si je lance le make, conformément à la doc, ca bloque :
#make
gcc -o ../psworlds-linux alienlight.o [..pleins de .o] world.o -I../../fmod/inc -L../../fmod/lib -L../../fmod -lfmod -L/usr/X11R6/lib -lX11 -lXext -lglut -lGL -lGLU -lfmod-3.33 `sdl-config --cflags --libs`
/usr/bin/ld: cannot find -lGLU
collect2: ld returned 1 exit status
make: *** [all] Erreur 1
Si je comprends bien, il faut une librairie GLU.
# locate GLU
[...]
/usr/X11R6/lib/libGLU.so.1.3.500
/usr/X11R6/lib/libGLU.so.1
/usr/X11R6/lib/libGLU.la
/usr/X11R6/lib/libGLU.so
D'après ce que je comprends, il y a bien une librairie GLU qui traîne, et elle serait dans le bon repértoire (-L/usr/X11R6/lib)
Déjà, là, je ne comprends plus trop ce qui ce passe.
De plus, si je fais :
# urpmi GLU
Les paquetages suivants contiennent GLU : libMesaGLU1-devel libMesaGLU1
# urpmi libMesaGLU1
tout est déjà installé
# urpmi libMesaGLU1-devel
tout est déjà installé
Je ne vois pas trop là non plus le comportement de urpmi. Pour les autres mots clés, il ne s'embarasse pas des détails et me dit directement que tout est installé, et pour ces libs précises, il m'affiche une liste, mais me dit si je tente de les installer que c'est déjà fait ?
Quelle serait donc cette mystérieuse librairie GLU que je ne possèderais pas ? Si comme je le pense, cette lib est plutôt standard, ca serait bizarre qu'elle ne soit ni sur mes cds, ni sur une de mes sources http.
Je précise que que j'ai déjà quelques jeux 3D qui tournent comme TuxRacer ou egoboo. Par contre, slune et TuxKart n'ont pas voulu se compiler non plus (mais avec une erreur différente, de type "undefined reference to", bien que le configure passe bien)
Désolé d'avoir fait aussi long (j'aime bien expliquer autant précisément que possible) et merci d'avance à quiconque pourra me sortir de ce mauvais pas :)
# Slune a un RPM...
Posté par Adrien . Évalué à 2.
# urpmi slune ! :)
[^] # Re: Slune a un RPM...
Posté par Cyberdivad . Évalué à 1.
Tu connaîtrais la sources à utiliser ?
merci :)
[^] # Re: Slune a un RPM...
Posté par animal_omega . Évalué à 2.
tu trouveras plein d'info utiles, notament les sources a ajouter.
[^] # Re: Slune a un RPM...
Posté par Cyberdivad . Évalué à 1.
j'ai comme un doute que slune serait dispo sur une source cooker, mais je ne sais pas trop si je peux ajouter cette source sans risquer de me retrouver avec des paquets cooker un peu partout. Ou alors il y aurait une autre source que j'aurais oublié ?
En ce moment, j'ai : Installation CD 1 (x86) (cdrom1), Installation CD 2 (x86) (cdrom2), International CD (x86) (cdrom3), plf, main, contrib, updates, texstar
[^] # Re: Slune a un RPM...
Posté par Ano nyme (site web personnel) . Évalué à 1.
urpmi nomdelabibliothéque-dev
ca devrait aller mieux.
[^] # Re: Slune a un RPM...
Posté par Ano nyme (site web personnel) . Évalué à 1.
# urpmi libMesaglut3-devel
devrait t'être utile ;-)
[^] # Re: Slune a un RPM...
Posté par Cyberdivad . Évalué à 1.
#urpmi Mesa
tout est déjà installé
Mais j'ai effectivement poussé le vice a entrer dans les détails, sans plus de résultat :
[root@ouragan briquolo-0.3]# urpmi libMesa
Les paquetages suivants contiennent libMesa : libMesaGL1 libMesaglut3-devel libMesaglut3 libMesaGLU1-devel libMesaGLU1
[root@ouragan briquolo-0.3]# urpmi libMesaglut3-devel
tout est déjà installé
etc.
Je commence à être bien paumé dans tout ca moi. J'ai fait des urpmi.update au cas ou, et je n'ai jamais essayé d'installer de librairies à la main (ou meme avec rpm -i ou --force, je fais tout avec urpmi). Généralement, je laisse les logiciels compilés dans leur répertoire (ce qui n'est pas gênant vu que je suis seul utilisateur de ce poste), donc normalement ma mandrake devrait être toute propre ;)
j'ai l'impression qu'il me manque la librairie GLU, et effectivement (comme on le voit plus dans mon post original), je n'ai pas de libGLUmachin.a (si je me rappelle bien, c'est l'extension des librairies). Reste à savoir ou il peut bien se planquer. Les headers ont l'air d'être là, vu que seul l'exécutable final ne veut pas se compiler, il a l'air de manquer le fichier de la lib en lui meme. je commence à avoir mal à la tête moi :)
[^] # Re: Slune a un RPM...
Posté par jmfayard . Évalué à 1.
# Re: GLU, Mesa3D et ses amis
Posté par Epsos . Évalué à 3.
Une version prete a l'emploi
Une version de developpement (souvent suffixe par -devel)
La premiere te sert juste a lancer les applications qui se servent de la librairie (link au runtime par des dll)
La deuxieme te sert a compiler des programmes (fourni les headers, les librairies statiques, ...)
En clair il faut que tu installes les package de developpements ...
$>urpmi Mesa-devel
$>urpmi SDL-devel
$>urpmi libMesaGLU1-devel
...
pour ta deuxieme question, urpmi t'affiche un choix lorsque la chaine de caractere que tu as rentree matche plusieurs noms de package :
dans libMesaGLU1, libMesaGLU1-devel il y a GLU ... S'il y avait eu un package qui s'appelait precisemment GLU, il ne t'aurait pas pose la question.
C'est pourquoi urpmi SDL => le packet SDL et il te t'affiche pas SDL-devel ... (un paquet a le nom exact)
Sinon pour faire des recherches dans les paquets rpm, utilise plutot urpmf et urpmq.
urpmq fait une recherche au niveau des noms de paquet
==> urpmq SDL te donnera SDL et SDL-devel
urpmf fait une recherche au niveau des noms de fichier
==> urpmf GLU te donnera tous les fichiers contenant GLU ainsi que le package ou il est fournit.
Il y a un site qui explique tres bien ca mais j'arrive plus a mettre le nom dessus.
[^] # Re: GLU, Mesa3D et ses amis
Posté par Cyberdivad . Évalué à 1.
#urpmi SDL-devel
#urpmi libMesaGLU1-devel
Toutes ces commandes me retournent directement un "Tout est déjà installé.
Sinon merci pour toutes ces infos, et j'ai découvert l'utilité de urpmf :). J'avais un peu peur que mon urpmi déraille un peu, apparemment ce n'est pas le cas. C'est déjà ca :)
[^] # Re: GLU, Mesa3D et ses amis
Posté par Epsos . Évalué à 1.
Dans ce cas, comme conseillé plus haut, fait un
$> urpmf libGLU.a
ce qui te donnera quel(s) package contiennent libGLU.a
Installe les jusqu'a ce que ton systeme contienne cette fameuse librairie.
Verifie a coup de whereis ou locate (updatedb tu n'oublieras pas) que la librairie est bien la et relance ta compil.
Tant que tu n'as pas libGLU.a ca ne compilera pas.
Si tu as bien installe libGLU.a et que ca ne compile pas, alors de deux choses l'une :
- ou bien ton ./configure (que tu as du lancer a un moment donne j'imagine) a creer un cache quelque part, dans ce cas, fait un make dist-clean ou un rm -f .config-cache (me rappelle plus le nom du fichier mais ca ressemble a ca). Puis relance ./configure
- ou bien ton path de ldconfig est a la rue : verifie dans /etc/ld.so.conf que ta librairie se trouve bien dans les chemins listes. Et relance ldconfig si besoin ...
Bonne chance et tiens nous au courant.
[^] # Re: GLU, Mesa3D et ses amis
Posté par Cyberdivad . Évalué à 1.
Il n'y aurait pas une commande qui me permettrait de savoir dans quel package pourrait bien se trouver ce fameux fichier ? ca simplifirait un peu les choses :)
En tout cas, je vais devenir incollable sur l'utilisation d'urpmi et des bibliothèques après ca, moi :)
# Re: GLU, Mesa3D et ses amis
Posté par jmfayard . Évalué à 3.
T'es sûr que la bibliothèque n'a pas été effacée depuis le dernier updatedb ?
Sinon tu peux toujours essayer de rajouter /usr/X11R6/lib dans /etc/ld.so.conf
et de taper en root :
ldconfig
Je ne vois pas trop là non plus le comportement de urpmi.
Simple, tu lui demande d'installer un logiciel dont le nom est à peu près GLU.
Il y en a deux qui correspondent à ta demande
Il faut donc que tu sois plus précis
Tu fais alors urpmi libMesaGLU1
Là il n'y a qu'une seule possibilité, il essaye de l'installer, il n'y a pas
de versions plus à jour.
Sinon, quand il manque une librairie, il faut mieux utiliser urpmf (recherche de fichier)
S'il te manque la librairie TOTO, fait
urpmf libTOTO.so
[^] # Re: GLU, Mesa3D et ses amis
Posté par Cyberdivad . Évalué à 1.
libMesaGLU1:/usr/X11R6/lib/libGLU.so.1
libMesaGLU1:/usr/X11R6/lib/libGLU.so.1.3.500
libMesaGLU1-devel:/usr/X11R6/lib/libGLU.la
libMesaGLU1-devel:/usr/X11R6/lib/libGLU.so
libMesaGLU1:/usr/X11R6/lib/libGLU.so.1
libMesaGLU1:/usr/X11R6/lib/libGLU.so.1.3.500
libMesaGLU1-devel:/usr/X11R6/lib/libGLU.la
libMesaGLU1-devel:/usr/X11R6/lib/libGLU.so
J'ai bien un libGLU.so, mais pas de libGLU.a (.a=statique et .so = dynamique) ?
J'ai l'impression d'être proche de la solution, vu que ld demande un "-lGLU" que je possèderais apparemment. En réfléchissant posément, je dirais que ca serait parce que cette fameuse lib n'est pas recherchée au bon endroit. Y a bien un "-L/usr/X11R6/libGLU.so", qui me laisse à penser que le compilateur/lieur recherchait dans ce répertoire, mais je me trompe peut-être. J'ai bien envie de coller cette lib dans le répertoire des sources une bonne fois pour toute moi :p
[^] # Re: GLU, Mesa3D et ses amis
Posté par Epsos . Évalué à 2.
et oui, bonne reponse. .a = statique, .so = dynamique.
Quant au .la, bizarre.
Fait un ls -al dessus.
Si c'est pas un lien vers le .so, tu peux peut etre creer un lien qui s'appelle libGLU.a
$>ln -s /usr/X11R6/lib/libGLU.la /usr/X11R6/lib/libGLU.a
[^] # Re: GLU, Mesa3D et ses amis
Posté par Cyberdivad . Évalué à 1.
# ls -al /usr/X11R6/lib/libGLU.la
-rwxr-xr-x 1 root root 798 jan 9 2003 /usr/X11R6/lib/libGLU.la*
# ln -s /usr/X11R6/lib/libGLU.la /usr/X11R6/lib/libGLU.a
# make
[...]
/usr/X11R6/lib/libGLU.a: file not recognized: File format not recognized
collect2: ld returned 1 exit status
make: *** [all] Erreur 1
Maintenant, la problématique est claire : me procurer un libGLU.a, et si possible trouver dans quel package il pourrait bien se trouver. Jeu de cache-cache en perspective :)
# Re: GLU, Mesa3D et ses amis
Posté par mickabouille . Évalué à 1.
Non, je demande ça parce que si c'est un nvidia Gemachin avec les pilotes paslibres, ça peut être un conflit entre les bibliothèques -devel que tu aurait installé en paquets originaires de ta distrib après avoir installé les pilotes nvidia, et qui auraient donc écrasé ceux fournis par le pilote paslibre.
Résultat, ça marche quand c'est déja compilé (on n'utilise que les bibliothèques dynamiques), mais pas quand on essaie de compiler (on a besoin des .h, qui ne correspondent pas).
[^] # Re: GLU, Mesa3D et ses amis
Posté par mickabouille . Évalué à 1.
Oublie ça.
[^] # Re: GLU, Mesa3D et ses amis
Posté par Cyberdivad . Évalué à 1.
# Re: GLU, Mesa3D et ses amis
Posté par Sidoine de Wispelaere . Évalué à -2.
# Re: GLU, Mesa3D et ses amis
Posté par Cyberdivad . Évalué à 1.
J'ai fini par compiler ce fameux jeu en recourant à une astuce que j'ai trouvée sur un site (par rapport au meme problème mais pour un autre soft) :
J'ai fait un lien de libGLU.so => libGLU.a.
Mais je remarque que libGLU.SO est un lien, et qu'il pointe sur un libGLUS.so.1.3 inexistant (bizarre ?), mais que j'ai un libGLU.so.1.3.500 (un vrai fichier celui-la). Au final, ca me donne ca :
/usr/X11R6/lib/libGLU.a -> /usr/X11R6/lib/libGLU.so*
/usr/X11R6/lib/libGLU.so -> /usr/X11R6/lib/libGLU.so.1.3*
/usr/X11R6/lib/libGLU.so.1.3 -> /usr/X11R6/lib/libGLU.so.1.3.500*
/usr/X11R6/lib/libGLU.so.1 -> libGLU.so.1.3.500*
Je ne sais pas si j'ai bien fait, mais en tout cas, ca a compilé.
Le pire dans tout ca, c'est qu'il manque un fichier dans l'archive du jeu, un script shell destiné à le lancer ! argg, y a intérêt à ce qu'il soit bien ce jeu, une fois que je parviendrais à l'exécuter, avec tout le temps que j'ai passé à l'installer :)
En tout cas, merci à tout le monde pour l'aide sympatique, j'aurais déjà appris pleins de choses sur urpmi, les librairies, etc. aujourd'hui :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.