J'ai realisé un petit programme en SDL utilisant SDL_ttf, tout ceci sous windows. J'aimerais néanmoins le recompilé sour Linux pour justement apprendre a faire du code plus portable.
A l'execution j'ai une erreur de sergementation, d'apres gdb celle-ci vien de la fonction TTF_OpenFont():
Program received signal SIGSEGV, Segmentation fault.
0x001e53f8 in TTF_SizeUNICODE() from /usr/lib/libSDL_ttf-2.0.so.0
(gdb) bt
#0 0x001e53f8 in TTF_SizeUNICODE() from /usr/lib/libSDL_ttf-2.0.so.0
#1 0x001e55f3 in TTF_RenderUNICODE () from /usr/lib/libSDL_ttf-2.0.so.0
#2 0x001e5ee0 in TTF_RenderText_Blended () from /usr/lib/libSDL_ttf-2.0.so.0
#3 0x080492d1 in main (argc=1, argv=0xbffff3e4 at main.c:166
Ça m'est déjà arrivé alors que je compilais le programme de quelqu'un qui est sous Windows. Il avait nommé sa font Police.TTF, et, dans son code, il chargeait Police.ttf(en minuscules).
Le truc, c'est que Linux est sensible à la casse, et pas Windows.
En clair, fais attention aux majuscules dans les noms.
Tu devrais aussi mettre en place un système de vérification du chargement des ressources.
en ce qui concerne la casse, j'y ai prêté attention du fait que ma police est placée dans mon répertoire courant et se nome "MAGIC.TTF".
Pour la vérification du chargement des ressources, penses-tu que cela pourrais venir d'une ressources mal chargée ou corrompue? car j'ai désinstallé et réinstallé la SDL completement pour en etre sûr et j'ai toujours le même problème.
Pour la vérification du chargement des ressources, penses-tu que cela pourrais venir d'une ressources mal chargée ou corrompue? car j'ai désinstallé et réinstallé la SDL completement pour en etre sûr et j'ai toujours le même problème.
Non, je pense carrément à une ressource non trouvée.
Essaye une gestion des erreurs, et ensuite on avisera. Ne t'inquiète pas, c'est expliqué par M@teo21.
ok merci a toi. Je relit le cours de M@teo21 et je travail la dessus. Je te tien au courant.
[EDIT]
Voila mon problème est résolut.
Tu avais raison pour la casse de la police d'écriture... j'utilise une variable qui contient le nom d'une police lue dans un fichier et en affichant cette variable elle contenait MAGIC.TTF" (avec " en trop).
Tout ceci du fait que sous windows je devait metres \\ qui est interprté comme un \ dans les répertoires, mais sous linux c'est / ce qui décale mon code de un rang vers la gauche. D'ou le caractere en trop.
Merci pour le systeme d'erreur, c'est vrai que je n'ai pas pris l'habitude de le faire étant donné que j'ai jamais d'erreur de chargement de lib.
Ça m'est déjà arrivé alors que je compilais le programme de quelqu'un qui est sous Windows. Il avait nommé sa font Police.TTF, et, dans son code, il chargeait Police.ttf(en minuscules).
Le truc, c'est que Linux est sensible à la casse, et pas Windows.
merci j'avais le même problème sur mon ubuntu a case du .TTF qui était en minuscule dans mon code et lors de la compilation Windows sa marchais et je ne comprenait pas .
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Je ferme ce sujet. En cas de désaccord, me contacter par MP.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Pas d'aide concernant le code par MP, le forum est là pour ça :)