http://www.gp32spain.com/foros/showthread.php?t=24690
Bonjour. Aujourd'huit, grace aux personnes du forum de GP32x, j'ai reussit a generer un executable pour la GP2X qui utilise les libreries SDL depuis Windows XP apres avoir essaye depuis plusieurs jours sans y parvenir, et c'est pour ca que j'ai decide d'expliquer ici mon parcourt. Et cela, je n'ai pas encore de console, sans avoir pu essayer en vrai, mais quelqu'un du forum a suivi les meme pas (pour etre plus preci, j'ai suivis les siens) et il semble que ca fonctionne.
Avant tout, on programe en C/C++ et j'ai pris un mois avec les SDL (j'ai deja termine un jeux, pres pour etre compile pour la GP2x), mais je ne connait pas tres bien le gcc/g++ ni les Makefile, ainsi que quelques choses m'echapent. Mais enfin, en essayant et avec l'aide de GP32x j'ai reussi a faire quelque chose.
J'ai utilise:
* Le DevKit de WinterMute. Avec ca on a les compilateurs qui generent le code pour la GP2X en utilisant les librairies deja compilees pour le systeme.
* Les librairies gp2xlibs, dans lesquelles il y a les SDL compilees pour la GP2X.
* L'environnement de developpement Dev-C++.
* l'archive "main.cpp" qui est dispo ICI.
ET voila les pas:
1. J'ai programe en utilisant la IDE Code::Blocks. Que chaqu'un utilise celle qu'il appreci le plus, bien qu'au final j'ai reussi a le faire fonctionner depuis Dev-C++ peut etre il est plus adequate utiliser cette outil directement, en dechargeant les SDL pour Windows.
2. J'ai telecharge le DevKit et suivit ces inctuctions au pied de la lettre (structire de repertoire et variable d'environnement), excepte dans le premier pas dans lequel il est di qu'il manque de telecharger le DevKit adequate, car je l'ai deja. Au final il suggerant d'utiliser l'editeur programeur Notepad pour programer, mais comme je l'ai deja dis, depuis Dev-C++ ca a fonctionne donc ce n'est pas necessaire. Il est aussi necessaire, comme on peut le lire, MinSys, surtout pour pouvoir executer les instructions "make" (Il est dis que DevKit n'est pas pensé pour CygWin).
3. j'ai telecharge les gp2xlibs et une fois decompressees j'ai copié tout ce qu'il y a dedans de son sous repertoire "gp2xlibs/opt/local/gp2x/include" dans le repertoire "include" de DevKit. et de meme pour "gp2xlibs/opt/local/gp2x/libs", qui vont dans "libs" de DevKit.
4. J'ai executé Dev-C++ et cree une nouvelle configuration de compilation. Ceci est necessaire pour faire en sorte que Dev-C++ execute le compilateur adaquate. Pour ca, je suis allé dans Outils->Options du compilateur (je ne sais pas le nom exacte en castillant car je l'ai en catalan, mais j'imagine que ca doit etre quelque chose de ressemblant), et dnas l'onglet "Compilateur" je lui ai donné le signe + pour creer la nouvelle configuration, et je lui ai donné un nom ("GP2X").
4.1. Pour indiquer a Dev-C++ quel compilateur utiliser ("gcc" pour les programes en C, et "g++" pour les programes C++), je suis alle dans l'onglet "Programes" et j'ai fait en sorte que "gcc" pointe vers "arm-linux-gcc.exe" qu'on trouve dans le repertoire "bin" de DevKit. Le champ "g++" j'ai fait en sorte qu'il pointe vers "arm-linux-g++.exe".
4.2. Maintenant il est necessaire que Dev-C++ sache ou trouver les fichiers d'entete (les ".h") et les librairies (".a"). Pour cela, j'ai ete dans l'onglet "Repertoires" et dans le sous menu "Librairies" J'ai suprime celles qu'il y avait et j'ai ajouté celles qu'il y a dans DevKit ("PATH_DEL_DEVKIT\lib"). Dans le menu des includes C (¿"Inclusions C" en castillan?) j'ai supprimé les repertoires existant et j'ai remplacé ("PATH_DEL_DEVKIT\include"). Finalement, dans "Inclusions C++" j'ai remplacé les originales et je les ai ajouté: "PATH_DEL_DEVKIT\lib\gcc\arm-linux\4.0.2\include", "PATH_DEL_DEVKIT\include", "PATH_DEL_DEVKIT\include\c++\4.0.2\backward", "PATH_DEL_DEVKIT\include\c++\4.0.2\arm-linux" et "PATH_DEL_DEVKIT\include\c++\4.0.2". je ne sais pas si les trois dernieres sont indispensables, mais c'est comme ils disaient sur l'autre forum. Si quelqu'un veut tester si sans elles ca fonctionne, qu'il nous l'explique.
4.3. J'ai créé un nouveau projet dans Dev-C++ (Fichier->Nouveau->Projet) vide ("Empty Project"). alors j'ai du modifier la configuration du compilateur pour qu'il utilise celle que j'ai créé anterieurement (Projet->Options de Projet->Compilateur, et dans le champ "Compilateur" j'ai selectionné "GP2X" dans la liste).
4.4. j'ai ajouté le fichier "main.cpp" au projet.
4.5. Avant de compiler, je lui ai donné les instructions à Dev-C++ pour qu'il utilise la librairie "libSDL.a" (Projet->Options du Projet->Paramètres..., et dans le champs "enlassement" j'ai ajouté (bouton "Ajouter librairie ou objet") les fichiers "libSDL.a" et "libSDLmain.a" qui se trouvant dans "PATH_DEL_DEVKIT\lib".
4.6. J'ai compilé (bouton "Compiler" ou CTRL+F9) et il m'a généré une archive ".exe" que j'ai renommé en ".gpe" (il génère un ".exe" parceque comme il est di dans le Makefile qui génère -"Makefile.win"-, mais je crois qu'en le changeant en ".gpe" cela suffit.
Je laisse le "gpe" pour que les peux (je vous haïs profondément) qui ont déja la console l'essayant et confirmant si ca fonctione ou non.
Bon, voila c'est fini. J'espere que cela soit utile. Et j'espere qu'il y ait des corrections de la part des experts.
Ah, et comme je le disais au début, j'ai terminé de programer un jeux, qui fonctione parfetement sur Linux et Windows. Le probleme est qu'en utilisant SDL_mixer et SDL_image cela me donne une montagne de messages "undefined reference" quand je le compile pour GP2X, en pensant que j'inclue aussi ces librairies au projet. Moi, j'en suis resté là pour l'instant...
Voila la trad j'espers que ca pourra vous aider et desole pour les eventuelles erreurs