Comment installer ocaml sous windows avec ocamlsdl? Ce n'est pas très facile... du moins je n'ai pas trouvé plus facile. 1. Installer MinGW + MSys: http://www.mingw.org/ télécharger: http://sourceforge.net/projects/mingw/files/automated%20mingw%20installer/mingw-getinst/mingw-get-inst-20110211/mingw-get-inst-20110211.exe/download lancer l'installeur, installer dans l'emplacement proposé: C:\MinGW séléctionner MSYS Basic System, installer optionnel: chercher son répertoire perso MSYS: pour moi, C:\MinGW\msys\1.0\home\svungoc et faire un raccourci sur le bureau: pratique! Dans la suite je l'appelle HOME. faire aussi un raccourci du shell de MSYS: C:\MinGW\msys\1.0\msys.exe Lancer le programme msys, cliquer sur la petite icône en haut à gauche -> propriétés -> cocher «édition rapide» et «mode insertion»: on peut maintenant copier du texte en sélectionnant à la souris et finissant par le bouton droit (ou CTRL-C) et coller avec le bouton droit. 2. Installer SDL: http://www.libsdl.org/download-1.2.php télécharger SDL-devel-1.2.14-mingw32.tar.gz: http://www.libsdl.org/release/sdl-devel-1.2.14-mingw32.tar.gz et le mettre dans HOME. lancer la console MSYS, et taper tar xvfz SDL-devel-1.2.14-mingw32.tar.gz On va maintenant modifier un fichier: SDL-1.2.14/bin notepad.com sdl-config (ou utiliser n'importe quel autre éditeur) remplacer la ligne 3 par prefix=/mingw Installer les fichiers pour qu'ils soient trouvés facilement par mingw: mv SDL-1.2.14/bin/* /mingw/bin/ mv SDL-1.2.14/include/SDL/* /mingw/include/ mv SDL-1.2.14/lib/* /mingw/lib/ Il est temps de tester SDL: SDL-1.2.14/test/./configure make et par exemple:./testsprite
Un fenêtre doit s'ouvrir avec plein de petits smileys qui bougent dans tous les sens... ça marche? Bravo! On installe maintenant des librairies additionnelles, mais pratiquement obligatoires: http://www.libsdl.org/libraries.php SDL_ttf: http://www.libsdl.org/projects/sdl_ttf/release/sdl_ttf-devel-2.0.10-vc.zip SDL_image: http://www.libsdl.org/projects/sdl_image/release/sdl_image-devel-1.2.10-vc.zip SDL_mixer: http://www.libsdl.org/projects/sdl_mixer/release/sdl_mixer-devel-1.2.11-vc.zip Les placer dans HOME, les décompresser (avec ce que vous avez pour dézipper... ex: clic droitextract here) mv SDL_ttf-2.0.10/include/* /mingw/include/ mv SDL_ttf-2.0.10/lib/* /mingw/lib/ mv SDL_image-1.2.10/include/* /mingw/include/ mv SDL_image-1.2.10/lib/* /mingw/lib/ mv SDL_mixer-1.2.11/include/* /mingw/include/ mv SDL_mixer-1.2.11/lib/* /mingw/lib/ /mingw/lib mv *.dll../bin/ Maintenant il faut changer quelques noms de fichiers: /mingw/lib mv SDL_ttf.lib libsdl_ttf.lib mv SDL_image.lib libsdl_image.lib mv SDL_mixer.lib libsdl_mixer.lib 3. Installer flexlink: http://alain.frisch.fr/flexdll.html télécharger http://alain.frisch.fr/flexdll/flexdll-0.26-setup.exe et installer dans l'emplacement proposé, puis, dans la console cp /c/program\ Files/flexdll/*.exe /mingw/bin/ cp /c/program\ Files/flexdll/*.o /mingw/bin/ 4. Installer OCAML: http://caml.inria.fr/ocaml/release.fr.html Télécharger: http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.0-win-mgw.exe Lancer l'installeur, attention ne pas laisser l'emplacement proposé, choisir l'emplacement C:\ocamlmgw Vérifier qu'il n'y pas de variable d'environnement perso qui traîne. Pour vérifier si ocaml fonctionne en ligne de commande, fermer la console MSYS, la rouvrir, et taper
ocaml Pas d''erreur affichée? Parfait! S'il y a une erreur, c'est sûrement une variable d'environnement perso qui masque la variable système. Cf "panneau de configuration" -> écrire "chemin" dans la recherche en haut à droite, etc. 5. Installer ocamlsdl: http://ocamlsdl.sourceforge.net/home.html Télécharger: http://sourceforge.net/projects/ocamlsdl/files/ocamlsdl/ocamlsdl-0.8.0/ocamlsdl- 0.8.0.zip/download Le placer dans HOME, le dézipper. ocamlsdl-0.8.0./configure en principe les librairies SDL doivent être détectées... taper make il faut modifier un fichier notepad.exe src/makefile ligne 4, insérer OCAMLSDLDIR=/c/ocamlmgw/lib/sdl OCAMLLIBDIR=/c/ocamlmgw/lib puis chercher les caractères "dll*.so" (sans les guillemets) avec CTRL-f et les remplacer par "dll*", enregistrer, fermer. make install ça y est!!! TEST: http:// wiki.njh.eu/ocaml_and_sdl créer un fichier test.ml; touch test.ml notepad.exe test.ml et y copier: let main () = print_endline "START:"; Sdl.init [`VIDEO]; Sdlvideo.set_video_mode 200 200 []; Sdltimer.delay 2000; Sdl.quit ();
print_endline "STOP!" let _ = main () On peut l'interpréter direct par: ocaml bigarray.cma -I +sdl sdl.cma test.ml ou le compiler: ocamlc bigarray.cma -I +sdl sdl.cma test.ml -o test./test Exemple plus complet. D'abord, copier dans HOME des fichiers multimédias de votre choix: testsdl_2.mp3 testsdl_2.jpg testsdl_2.ttf créer le fichier test2.ml contenant: let image_filename = "testsdl_2.jpg" let font_filename = "testsdl_2.ttf" let music_filename = "testsdl_2.mp3" let run () = let screen = Sdlvideo.set_video_mode 400 400 [`DOUBLEBUF] in let image = Sdlloader.load_image image_filename in let font = Sdlttf.open_font font_filename 24 in let text = Sdlttf.render_text_blended font "Enjoy!" ~fg:sdlvideo.white in let music = Sdlmixer.load_music music_filename in let position_of_image = Sdlvideo.rect 0 0 300 300 in let position_of_text = Sdlvideo.rect 300 0 300 300 in Sdlvideo.blit_surface ~dst_rect:position_of_image ~src:image ~dst:screen (); Sdlvideo.blit_surface ~dst_rect:position_of_text ~src:text ~dst:screen (); Sdlvideo.flip screen; Sdlmixer.fadein_music music 1.0; Sdltimer.delay 1000; (* fade in *) Sdltimer.delay 6000; (* play *) Sdlmixer.fadeout_music 2.0; Sdltimer.delay 2000; (* fade out *) Sdlmixer.halt_music (); Sdlmixer.free_music music let main () = Sdl.init [`VIDEO; `AUDIO]; at_exit Sdl.quit; Sdlttf.init (); at_exit Sdlttf.quit; Sdlmixer.open_audio (); at_exit Sdlmixer.close_audio; run ()
let _ = main () Puis compiler par: ocamlc bigarray.cma -I +sdl sdl.cma sdlloader.cma sdlttf.cma sdlmixer.cma test2.ml -o test2 enfin lancer./test2 Vous devriez voir une jolie image, avec le mot «Enjoy» en haut à droite, entendre un fond musical! Ça marche? Yeah!!! (ouf!) On peut aussi compiler en code natif: ocamlopt bigarray.cmxa -I +sdl sdl.cmxa sdlloader.cmxa sdlttf.cmxa sdlmixer.cmxa test2.ml -o test2 Maintenant, à vos claviers? Programmez-nous un bon petit jeu en SDL et ocaml! Remarque: vous pouvez effacer tout ce qu'on a mis dans HOME: plus rien n'est nécessaire! Méthode semi-automatique J'ai prépare une archive pour aller plus vite. Elle contient les utilitaires unzip et wget que j'ai téléchargés à partir de : unzip : http://gnuwin32.sourceforge.net/packages/unzip.htm http://sourceforge.net/projects/gnuwin32/files/unzip/5.51-1/unzip-5.51-1-bin.zip/download wget: http://gnuwin32.sourceforge.net/packages/wget.htm Les instructions sont à l'adresse :http://blogperso.univ-rennes1.fr/san.vungoc/index.php/post/2011/02/20/ocaml-and-sdl-on-windows