Journal GLU, Mesa3D et ses amis

Posté par  .
Étiquettes : aucune
0
24
juil.
2003
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  . Évalué à 2.

    Je peux pas trop t'aider pour les compilations (il m'arrive souvent de rencontrer ce genre de problème et de ne pas être assez patient pour les régler...) mais en revanche je peux te dire que Slune est en rpm et ça marche très bien.
    # urpmi slune ! :)
    • [^] # Re: Slune a un RPM...

      Posté par  . Évalué à 1.

      C'est ce que j'ai entendu dire, mais je ne dois pas avoir la bonne source (j'ai les 3cds mdk9.1 et les sources du site plf).
      Tu connaîtrais la sources à utiliser ?
      merci :)
      • [^] # Re: Slune a un RPM...

        Posté par  . Évalué à 2.

        www.urpmi.org

        tu trouveras plein d'info utiles, notament les sources a ajouter.
        • [^] # Re: Slune a un RPM...

          Posté par  . Évalué à 1.

          Euh, j'ai fait un tour sur le site et je suis retombé sur le site plt.zarb.org.
          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  (site web personnel) . Évalué à 1.

            As tu installé les bibilothéques de développement.

            urpmi nomdelabibliothéque-dev

            ca devrait aller mieux.
            • [^] # Re: Slune a un RPM...

              Posté par  (site web personnel) . Évalué à 1.

              par exemple :

              # urpmi libMesaglut3-devel

              devrait t'être utile ;-)
              • [^] # Re: Slune a un RPM...

                Posté par  . Évalué à 1.

                Ben en fait, rien qu'en faisant "urpmi Mesa", il me dit :
                #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: GLU, Mesa3D et ses amis

    Posté par  . Évalué à 3.

    Sous la Mandrake, les librairies sont souvent coupees en deux.
    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  . Évalué à 1.

      #urpmi Mesa-devel
      #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  . Évalué à 1.

        >/usr/bin/ld: cannot find -lGLU

        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  . Évalué à 1.

          Donc, il me faudrait bien un libGLU.a et non libGLU.so. Je confirme que je n'ai pas ce fichier libGLU.a. J'ai installé tous les packages libSDL, libMesa* (versions "normales" et "devel" a chaque fois), je suis un peu à cours d'idées de librairies à installer.
          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  . Évalué à 3.

    Pour le problème de blibliothèque, je ne vois pas trop.
    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  . Évalué à 1.

      Merci également pour ces infos :) On avance un peu. Un "urpmf libGLU" me donne :
      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  . Évalué à 2.

        Mauvaise reponse luke. C'est libGLU.a qu'il te faut !
        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  . Évalué à 1.

          L'idée était bonne, bien essayé :) :

          # 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  . Évalué à 1.

    Quel matériel est-ce? De quels pilotes s'agit-il?
    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  . Évalué à -2.

    Utilisez les forums pour ce genre de message. Les journaux sont des journaux, pour passer des nouvelles de faible intérêt, hors sujet ou raconter ses vacances à la plage.
  • # Re: GLU, Mesa3D et ses amis

    Posté par  . Évalué à 1.

    Y a du nouveau !

    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.