Compilation sous SDL

Résolu
MzelleBizoukette Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je fais un jeu pour les cours, j'ai inclus la bibliothèque SDL à celui-ci.
Mais quand je compile il m'affiche des erreurs bizarres.
Un nombre de ligne incalculable, dans le style :

/usr/lib64/libSDL.a(SDL_systhread.o): In function 'SDL_SYS_CreateThread':
(.text+0x42): undefined reference to 'pthread_create'

voilà une aide s'il vous plaît ?
Pour installé la bibliothèque, j'avais un fichier en format .rpm, avec alien je l'ai converti en .deb pour l'installé.

5 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Ah mais ce n'est pas comme ça que tu dois installer la librairie sdl, pourquoi ne passe-tu pas simplement par apt pour l'installer ?

    D'abord fais une petite mise à jour :

    sudo apt-get update
    sudo apt-get upgrade


    Puis purge le paquet que tu as généré avec alien. Supposons qu'il s'appelle toto-dev-1.0.2.deb cela donnerait :

    sudo dpkg --purge toto-dev


    Ensuite utilise apt-cache pour chercher le nom du paquet debian :

    (mando@silk) (~) $ apt-cache search libsdl | grep dev | grep sdl
    libalien-sdl-dev-perl - helper  to build  Perl program using SDL libraries
    libsdl-console-dev - Console that can be added to any SDL application, development files
    libsdl-sge-dev - extension of graphic functions for the SDL multimedia, development files
    libsdl-ocaml-dev - OCaml bindings for SDL - development files
    libsdl-image1.2-dev - Image loading library for Simple DirectMedia Layer 1.2, development files
    libsdl-mixer1.2-dev - Mixer library for Simple DirectMedia Layer 1.2, development files
    libsdl-net1.2-dev - Network library for Simple DirectMedia Layer 1.2, development files
    libsdl-sound1.2-dev - Sound library for Simple DirectMedia Layer 1.2, development files
    libsdl-stretch-dev - development files for SDL_stretch library
    libsdl-ttf2.0-dev - TrueType Font library for Simple DirectMedia Layer 1.2, development files
    libsdl-gfx1.2-dev - development files for SDL_gfx
    libsdl-pango-dev - text rendering with Pango in SDL applications (development)
    libsdl1.2-dev - Fichiers de développement Simple DirectMedia Layer


    Une fois le nom repéré installe le paquet :

    sudo apt-get install libsdl1.2-dev


    Et c'est tout ;-)

    Bonne chance
    0
  2. MzelleBizoukette Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   17
     
    Ça ne fonctionne pas !
    Il me met un rapport d'erreur lors de l'installation du fichier en .deb
    0
    1. MzelleBizoukette Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   17
       
      tentative de remplacement de « /usr/include/SDL/SDL.h », qui appartient aussi au paquet sdl-devel 1.2.15-1
      dpkg-deb : erreur : le sous-processus coller a été tué par le signal (Relais brisé (pipe))
      Des erreurs ont été rencontrées pendant l'exécution :
      /var/cache/apt/archives/libsdl1.2-dev_1.2.14-6.4ubuntu3_amd64.deb
      E: Sub-process /usr/bin/dpkg returned an error code (1
      0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Oui c'est parce que le paquet toto dont je te parlais s'appelle dans ton cas sdl-devel et que tu n'as pas purgé ce paquet au préalable. Du coup il y a une collision entre les deux paquets, car les deux fournissent un fichier placé au même endroit (/usr/include/SDL/SDL.h dans ton cas)? Ainsi il faut d'abord purger le paquet que tu as généré avec alien en lançant :

    sudo dpkg --purge sdl-devel


    Ceci fait, il ne reste plus qu'à mettre à jour et à installer le paquet debian :

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install libsdl1.2-dev


    De manière générale, avant de passer par alien, vérifie systématiquement avec apt-cache ou un site comme https://packages.ubuntu.com/fr/ qu'il n'existe pas un paquet debian qui répond à ton besoin, ainsi l'installation sera bien plus propre (ne serait-ce que parce que si une mise à jour de libsdl est publiée dans les paquets debian tu en bénéficiera automatiquement, alors que si tu l'as installé à la main par alien, tu ne la verras pas).

    Bonne chance
    0
  4. MzelleBizoukette Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   17
     
    Problème résolue. Merci ;D
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Parfait, bonne continuation :-)
    0