Cross compilation avec SDL
Résolu/Fermé
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
-
6 août 2008 à 20:49
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 18 août 2008 à 08:05
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 18 août 2008 à 08:05
A voir également:
- Cross compilation avec SDL
- Cross dj - Télécharger - Lecture & Playlists
- Telecharger code blocks avec compilateur - Télécharger - Langages
- Breach compilation - Guide
- Watch dogs 2 cross play ✓ - Forum Jeux PC
- Comment faire une compilation de musique - Forum Audio
29 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
7 août 2008 à 09:48
7 août 2008 à 09:48
il faut récupérer la SDL de windows. Comme il s'agit d'application graphique, le code source de SDL est différent entre les deux.
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
69
7 août 2008 à 11:41
7 août 2008 à 11:41
Donc je télécharge SDL-devel-1.2.13-mingw32.tar.gz (Mingw32) sur le site de la SDL et ensuite ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
7 août 2008 à 13:18
7 août 2008 à 13:18
tu compiles :D
sérieusement, je ne vois pas où est le problème.
Si tu n'as que les sources, tu dézip, tu lis les instructions de compilation, et tu les met en pratique.
Ensuite, il ne reste plus qu'a compilé ton programme comme sous linux. Bref, rien de mystérieux !
sérieusement, je ne vois pas où est le problème.
Si tu n'as que les sources, tu dézip, tu lis les instructions de compilation, et tu les met en pratique.
Ensuite, il ne reste plus qu'a compilé ton programme comme sous linux. Bref, rien de mystérieux !
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
69
7 août 2008 à 14:41
7 août 2008 à 14:41
J'ai donc téléchargé SDL-devel-1.2.13-mingw32.tar.gz (Mingw32) et je lis le fichier install :
1. Run './configure; make; make install'
Il n'y a pas de fichier configure ! Qu'est-ce que je fais alors ?
1. Run './configure; make; make install'
Il n'y a pas de fichier configure ! Qu'est-ce que je fais alors ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
7 août 2008 à 15:29
7 août 2008 à 15:29
si il y a un makefile, tente le make.
par contre, tu as gcc du pack mingw ou cygwin ? J'ai remarqué qu'il y avait quelques différences entre les deux.
par contre, tu as gcc du pack mingw ou cygwin ? J'ai remarqué qu'il y avait quelques différences entre les deux.
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
69
8 août 2008 à 10:40
8 août 2008 à 10:40
J'ai fait un make cross et cela m'a créé un dossier /usr/local/cross-tools/i386-mingw32/ et dedans, cela m'a installé les bibliothèques de la SDL.
Mais maintenant, comment je compile ? Et pourquoi est-ce dans un dossier i386-... alors que d'habitude, quand je cross compile sans la SDL, je suis dans le dossier /usr/i586-mingw32msvc/ et que j'utilise i586-mingw32msvc-gcc pour compiler ?
Mais maintenant, comment je compile ? Et pourquoi est-ce dans un dossier i386-... alors que d'habitude, quand je cross compile sans la SDL, je suis dans le dossier /usr/i586-mingw32msvc/ et que j'utilise i586-mingw32msvc-gcc pour compiler ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
8 août 2008 à 11:02
8 août 2008 à 11:02
"make cross" ?? si tu le dit.
pour i386, j'en sais foutre rien, peut être que le portage Win est moins avancé sur les spec des cpu récent ?
"Comment je compile ?"
ba tu compiles en spécifiant la bonne bibliothèque. Je viens juste de comprendre que tu veux compiler pour windows sous Linux !
Je n'ai aucune expérience là dedans, mais si tu l'as déjà fait avec stdio, tu peu le faire avec SDL.
tu fait -lSDL, mais à la place de -L/usr/local/SDL/lib, tu fait -L/usr/local/cross-tools/i386-mingw32/lib
je pense...
pour i386, j'en sais foutre rien, peut être que le portage Win est moins avancé sur les spec des cpu récent ?
"Comment je compile ?"
ba tu compiles en spécifiant la bonne bibliothèque. Je viens juste de comprendre que tu veux compiler pour windows sous Linux !
Je n'ai aucune expérience là dedans, mais si tu l'as déjà fait avec stdio, tu peu le faire avec SDL.
tu fait -lSDL, mais à la place de -L/usr/local/SDL/lib, tu fait -L/usr/local/cross-tools/i386-mingw32/lib
je pense...
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
69
8 août 2008 à 21:19
8 août 2008 à 21:19
J'ai toujours cette erreur quand je compile :
In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL_main.h:26,
from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL.h:28,
from main.c:3:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL_stdinc.h:72:20: error: iconv.h: Aucun fichier ou dossier de ce type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL_stdinc.h:169:22: error: alloca.h: Aucun fichier ou dossier de ce type
In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL_main.h:26,
from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL.h:28,
from main.c:3:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL_stdinc.h:579: error: expected ‘)’ before ‘cd’
In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL_main.h:26,
from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL.h:28,
from main.c:3:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL_stdinc.h:72:20: error: iconv.h: Aucun fichier ou dossier de ce type
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL_stdinc.h:169:22: error: alloca.h: Aucun fichier ou dossier de ce type
In file included from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL_main.h:26,
from /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL.h:28,
from main.c:3:
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/SDL/SDL_stdinc.h:579: error: expected ‘)’ before ‘cd’
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
11 août 2008 à 08:01
11 août 2008 à 08:01
il ne trouve pas iconv.h
vérifie que tu l'as bien sur ton disque, et donne lui le chemin.
Si tu ne l'as pas, c'est que SDL semble mal installer ou alors que c'est un en tête windows qui te manque.
vérifie que tu l'as bien sur ton disque, et donne lui le chemin.
Si tu ne l'as pas, c'est que SDL semble mal installer ou alors que c'est un en tête windows qui te manque.
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
69
11 août 2008 à 21:40
11 août 2008 à 21:40
Oui, je n'avais pas tout les headers !
Maintenant, quand je compile, tout se passe bien mais lorsque j'exécute avec wine, j'obtiens les erreurs suivantes :
$ wine brik.exe
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0080: stub!
fixme:keyboard:X11DRV_LoadKeyboardLayout L"040c040c", 0001: stub!
Et je vois le programme s'afficher puis disparaître très rapidement.
Pourquoi ? Et qu'est-ce que je dois faire ?
Maintenant, quand je compile, tout se passe bien mais lorsque j'exécute avec wine, j'obtiens les erreurs suivantes :
$ wine brik.exe
fixme:keyboard:X11DRV_LoadKeyboardLayout L"00000409", 0080: stub!
fixme:keyboard:X11DRV_LoadKeyboardLayout L"040c040c", 0001: stub!
Et je vois le programme s'afficher puis disparaître très rapidement.
Pourquoi ? Et qu'est-ce que je dois faire ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
12 août 2008 à 10:59
12 août 2008 à 10:59
J'ai eu le même problème avec wine, il me disait de recompiler wine.
Je te conseil de tester avec un PC windows, là tu cumul les ennuies : est-ce que ça viens de wine ou de ta compilation ?? Si le programme s'affiche c'est au moins une bonne nouvelle. Je pencherai pour un problème wine.
Je te conseil de tester avec un PC windows, là tu cumul les ennuies : est-ce que ça viens de wine ou de ta compilation ?? Si le programme s'affiche c'est au moins une bonne nouvelle. Je pencherai pour un problème wine.
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
69
12 août 2008 à 11:30
12 août 2008 à 11:30
Bah, une fois compilé, ça ne marchait pas sur wine alors j'ai testé sur Windows mais il m'arrive la même chose, le programme s'affiche et disparaît immédiatement.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
12 août 2008 à 13:18
12 août 2008 à 13:18
lance le depuis une console voir si il y a des messages d'erreur. Sinon, utilise le debugueur, relève le code de sortie de l'erreur et réfère toi au manuel.
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
69
12 août 2008 à 13:44
12 août 2008 à 13:44
Sous Windows, quand je le lance depuis la console, je n'ai aucun message d'erreur mais la fenêtre s'ouvre et se referme quand même :
>brik.exe
(La fenêtre s'ouvre et se referme)
>
Je viens d'utiliser le débugger avec casiment toutes les options possibles (-g, -g3, -gstabs, -gstabs+, ...) et je n'ai jamais eu de message d'erreur.
>brik.exe
(La fenêtre s'ouvre et se referme)
>
Je viens d'utiliser le débugger avec casiment toutes les options possibles (-g, -g3, -gstabs, -gstabs+, ...) et je n'ai jamais eu de message d'erreur.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
12 août 2008 à 14:59
12 août 2008 à 14:59
lance ton programme dans la console, peut être avec "start" afin de le bloquer, et regarde le code de retour avec
echo %ERRORLEVEL%
Sinon, il faut débugguer à coup de "printf" le long du programme.
Si ton application est graphique, compile tu avec l'option -mwindows ? Sinon, comme le suggère wine, il est possible qu'il y ai un problème entre la SDL et windows au niveau de la gestion du clavier. Bien que le message de wine me soit très obscure. (recherche sur internet d'où peu venir cette erreur)
echo %ERRORLEVEL%
Sinon, il faut débugguer à coup de "printf" le long du programme.
Si ton application est graphique, compile tu avec l'option -mwindows ? Sinon, comme le suggère wine, il est possible qu'il y ai un problème entre la SDL et windows au niveau de la gestion du clavier. Bien que le message de wine me soit très obscure. (recherche sur internet d'où peu venir cette erreur)
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
69
12 août 2008 à 15:17
12 août 2008 à 15:17
Quand j'utilise ou non start, j'obtiens un %ERRORLEVEL% = 3 ! Je ne sais pas ce que ça veut dire mais bon !
J'ai déjà essayé de le débugger avec printf() mais le premier que j'avais placé avant mes déclarations n'est même pas apparu ce qui voudrait dire que l'erreur a lieu avant le main().
Non, je n'utilise pas l'option -mwindows (car je ne sais pas à quoi elle sert) mais je vais essayé.
J'ai également recherché sur Internet que voulait dire l'erreur de Wine mais je n'ai rien trouvé.
Edit : il se passe toujours la même chose même en ajoutant -mwindows.
J'ai déjà essayé de le débugger avec printf() mais le premier que j'avais placé avant mes déclarations n'est même pas apparu ce qui voudrait dire que l'erreur a lieu avant le main().
Non, je n'utilise pas l'option -mwindows (car je ne sais pas à quoi elle sert) mais je vais essayé.
J'ai également recherché sur Internet que voulait dire l'erreur de Wine mais je n'ai rien trouvé.
Edit : il se passe toujours la même chose même en ajoutant -mwindows.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
12 août 2008 à 15:39
12 août 2008 à 15:39
l'option -mwindows (ou -mwindow, je ne suis pas certain) permet de faire une programme windows qui ouvre ou non un fenêtre console.
Une fois que tu as le code erreur, il faut savoir à quoi il correspond. Il est fort possible que ça vienne de la SDL donc cherche dans le code source des exit() ou abort() qui enverrai 3 (là bonne chance, car en général on met des variables, ou pire, des macros)
Mais si même la première ligne du main n'est pas exécuter, c'est bizarre. J'ai ce problème sous Linux avec pthread lorsque je lie sans spécifier -lpthread, car il arrive à lier avec la bib standard, mais ça cause une erreur lors de l'exécution. J'ai aussi ce problème des fois avec QT, mais là je reconstruit tout le projet et ça va mieux.
Puisque tu as windows sous la main, tu peux aussi tenter une compilation directement dessus, avec mingw32.
Une fois que tu as le code erreur, il faut savoir à quoi il correspond. Il est fort possible que ça vienne de la SDL donc cherche dans le code source des exit() ou abort() qui enverrai 3 (là bonne chance, car en général on met des variables, ou pire, des macros)
Mais si même la première ligne du main n'est pas exécuter, c'est bizarre. J'ai ce problème sous Linux avec pthread lorsque je lie sans spécifier -lpthread, car il arrive à lier avec la bib standard, mais ça cause une erreur lors de l'exécution. J'ai aussi ce problème des fois avec QT, mais là je reconstruit tout le projet et ça va mieux.
Puisque tu as windows sous la main, tu peux aussi tenter une compilation directement dessus, avec mingw32.
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
69
12 août 2008 à 17:31
12 août 2008 à 17:31
Donc, si l'erreur vient de la SDL, la variable qui vaut 3 dans SDL_error.h est SDL_EFSEEK. Pour le moment, ça ne m'aide pas beaucoup !
Mais je me demande si on peut utiliser un débugger en même temps que l'on exécute le programme de manière "pas à pas"; je ne sais pas du tout me servir des débugger (d'habitude, ça marche !).
Et si je comprend bien, j'ai plus trop d'autres choix pour faire marcher mon programme !!!
Edit : en fait, je ne sais pas pourquoi mon programme ne faisait pas marcher mes printf() mais en compilant sous Windows, j'ai trouvé que l'erreur se trouvait à la ligne :
rBalle.x = ecran->w / 2 - sBalle->w / 2;
A la suite de cela, j'ai une erreur qui renvoie 0x3.
Mais je me demande si on peut utiliser un débugger en même temps que l'on exécute le programme de manière "pas à pas"; je ne sais pas du tout me servir des débugger (d'habitude, ça marche !).
Et si je comprend bien, j'ai plus trop d'autres choix pour faire marcher mon programme !!!
Edit : en fait, je ne sais pas pourquoi mon programme ne faisait pas marcher mes printf() mais en compilant sous Windows, j'ai trouvé que l'erreur se trouvait à la ligne :
rBalle.x = ecran->w / 2 - sBalle->w / 2;
A la suite de cela, j'ai une erreur qui renvoie 0x3.
Pico51
Messages postés
716
Date d'inscription
mercredi 27 décembre 2006
Statut
Membre
Dernière intervention
16 juillet 2019
69
12 août 2008 à 18:41
12 août 2008 à 18:41
Finalement, j'ai trouvé d'où venait le problème : c'était le fonction IMG_Load qui ne marchait pas car ... car ... car j'avais oublié ... une DLL !!!!!!!!!!!!
Enfin, merci beaucoup pour toute ton aide !!!
Malgré tout, pourquoi mon programme est-il beaucoup plus lent sur Vista ?
Enfin, merci beaucoup pour toute ton aide !!!
Malgré tout, pourquoi mon programme est-il beaucoup plus lent sur Vista ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
13 août 2008 à 07:50
13 août 2008 à 07:50
Erreur étrange, le manque de DLL... J'utilise peu les dll, en général Window t'alerte qu'elle manque.
Avec un peu de mauvaise fois, je dirai : "à cause de Vista qui est de la merde".
Est-ce que SDL est pleinement compatible Vista ? car il est possible que SDL ne prenne pas en compte les nouveauté et tourne en un mode dégradé. Test avec un bon vieux XP. Sinon, la compilation qui est moins optimiser ou une connerie du genre.
Avec un peu de mauvaise fois, je dirai : "à cause de Vista qui est de la merde".
Est-ce que SDL est pleinement compatible Vista ? car il est possible que SDL ne prenne pas en compte les nouveauté et tourne en un mode dégradé. Test avec un bon vieux XP. Sinon, la compilation qui est moins optimiser ou une connerie du genre.