Compilation sous SDL

Résolu
MzelleBizoukette Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33774 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

mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 883
 
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
MzelleBizoukette Messages postés 30 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
MzelleBizoukette Messages postés 30 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
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 883
 
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
MzelleBizoukette Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Problème résolue. Merci ;D
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

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