Compilation sous SDL

Résolu/Fermé
MzelleBizoukette Messages postés 30 Date d'inscription mardi 30 octobre 2012 Statut Membre Dernière intervention 8 décembre 2012 - 27 nov. 2012 à 09:28
mamiemando Messages postés 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 - 8 déc. 2012 à 11:53
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 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 7 753
27 nov. 2012 à 23:31
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 mardi 30 octobre 2012 Statut Membre Dernière intervention 8 décembre 2012 17
28 nov. 2012 à 14:34
Ç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 mardi 30 octobre 2012 Statut Membre Dernière intervention 8 décembre 2012 17
28 nov. 2012 à 14:36
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 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 7 753
28 nov. 2012 à 19:58
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 mardi 30 octobre 2012 Statut Membre Dernière intervention 8 décembre 2012 17
8 déc. 2012 à 10:53
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 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 7 753
8 déc. 2012 à 11:53
Parfait, bonne continuation :-)
0