2015-11-26 4 views

Répondre

1

Installation pour Windows 64 bits:

I Si vous suivez toutes les étapes jusqu'à ce point, essayez d'installer directement. Il s'agit d'un ensemble d'étapes ad hoc issues de nombreux messages différents. Toute simplification serait appréciée!

Remarque: Tout le travail dans les répertoires sans espaces. Je fais tout le travail dans C:/PF; modifiez cela dans votre répertoire.

  1. Télécharger MSYS2-x86_64 de https://msys2.github.io/ et l'installer. Cabal installer cairo (ou barre) donnera quelque chose comme:

    Configuration cairo-0.13.1.0 ... setup.exe: dépendances manquantes sur les bibliothèques étrangères:

    • manquantes bibliothèques C: z, caire, z, gobject-2.0, ffi, pixman-1, fontconfig, expat, type libre, iconv, expat, type de freestyle, z, bz2, harfbuzz, glib-2.0, intl, ws2_32, ole32, winmm, shlwapi, intl, png16, z
  2. Télécharger les bibliothèques C. En MINGW64 (PAS MSYS2 - J'ai eu des problèmes avec MSYS2 à des stades au hasard dans le processus), utilisez le gestionnaire de paquets:

    pacman de cairo

pour rechercher le package du Caire. Vous trouverez "mingw64/MinGW-w64-x86_64-cairo" il faut donc installer que:

pacman -S mingw64/mingw-w64-x86_64-cairo 

* .pc fichiers doivent avoir été ajoutés à C: \ PF \ msys64 \ mingw64 \ lib \ pkgconfig et C : \ PF \ msys64 \ usr \ lib \ pkgconfig. (Pkgconfig doit être en mesure de trouver ces fichiers. Il regarde dans PKG_CONFIG_PATH, qui par défaut devrait avoir le répertoire lib/dossier pkgconfig ci-dessus. Déplacement du fichier ici est plus facile. Voir Can't install sdl2 via cabal) Si vous obtenez

The pkg-config package ... version ... cannot be found 

erreurs puis vérifiez vos fichiers * .pc.

Répéter l'opération avec d'autres bibliothèques nécessaires, comme ATK

pacman -S mingw64/mingw-w64-x86_64-atk 

(Je ne sais pas la liste complète, mais les messages d'erreur plus tard vous permettra de savoir quoi faire.)

  1. Obtenez les fichiers de développement pour ces bibliothèques (comme suggéré par How to install cairo on Windows). La plupart d'entre eux sont regroupés au http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/. Décompressez.

    • Copier les fichiers (.a, .dll.a) dans lib à C: \ PF \ msys64 \ mingw64 \ lib. Copiez le dossier pkgconfig, qui contient les fichiers .pc.
    • Copiez les fichiers dans C: \ PF \ msys64 \ mingw64 \ include.
    • Ajoutez C: \ PF \ gtk + -2.22.1 \ bin au chemin.

(2) et (3) susceptible d'être redondant. Je ne sais pas - je les ai fait tous les deux.

À ce stade, vous pouvez probablement faire "cabal install cairo". (Attention: si votre objectif final est quelque chose d'autre, vous ne voulez pas installer des paquets intermédiaires "cabal install", voir https://wiki.haskell.org/Cabal/Survival#Issue_.232_--_Not_installing_all_the_packages_in_one_go.) Voir (4) pour la syntaxe en spécifiant extra-include-dirs et extra-lib-dirs (mais si vous avez copié les fichiers ci-dessus cela ne devrait pas être nécessaire),

Chaque fois que vous obtenez

Missing (or bad) header file 

chèque pour vous voir copié les fichiers * .h mingw64 \ include et/ou ajouter le dossier comprennent au chemin. Utilisez cabal install -v3 pour obtenir des messages d'erreur verbeux si le problème persiste.

Si vous obtenez quelque chose comme

cairo-0.13.1.0: include-dirs: /mingw64/include/freetype2 is a relative path 
which makes no sense (as there is nothing for it to be relative to). You can 
make paths relative to the package database itself by using ${pkgroot}. (use 
--force to override) 

essayer --ghc-pkg-options = "- la force" (comme mentionné à https://github.com/gtk2hs/gtk2hs/issues/139).

  1. Obtenez le SDL. Sinon, vous obtiendrez

    configure: erreur: *** SDL non trouvé! Obtenez SDL à partir de www.libsdl.org. Si vous l'avez déjà installé, vérifiez qu'il se trouve dans le chemin. Si le problème persiste, envoyez un mail à l'adresse qui apparaît dans ./configure --version en indiquant votre plateforme, la version du script configure et le problème. installer SDL Failed-0.6.5.1

Suivez les instructions (2) pour obtenir des bibliothèques sdl/sdl2. (Voir les instructions ici Installing SDL on Windows for Haskell (GHC).)

La nouvelle version helm-0.7.1 nécessite sdl2, mais il existe d'autres problèmes de dépendance avec helm-0.7.1 en écriture. Télécharger SDL à partir de http://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/ (lien de téléchargement direct à la plus nouvelle version à partir de l'écriture http://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/mingw-w64-x86_64-SDL-1.2.15-7-any.pkg.tar.xz.sig/download), unzip. "Cabale installer sdl" donne

* Missing (or bad) header file: SDL/SDL.h 
* Missing C library: SDL 
This problem can usually be solved by installing the system package that 
provides this library (you may need the "-dev" version). If the library is 
already installed but in a non-standard location then you can use the flags 
--extra-include-dirs= and --extra-lib-dirs= to specify where it is. 

donc nous préciser où les dirs sont (changer le nom en fonction de l'endroit où vous avez décompressé sdl a)

cabal install sdl --extra-include-dirs=C:/PF/sdl\include --extra-lib-dirs=C:/sdl/lib 

Si vous avez SDL2 (http://libsdl.org/download-2.0.php) (pour une nouvelle version de Helm): il y a un bug fatal qui n'a pas été corrigé dans la version finale. (Si vous ne le répare pas, cabale installer les choses -v3 qui dépend elle donnera erreur

winapifamily.h: No such file or directory 

("winapifamily.h: No such file or directory" when compiling SDL in Code::Blocks) Télécharger https://hg.libsdl.org/SDL/raw-file/e217ed463f25/include/SDL_platform.h, remplacez le fichier dans le dossier et inclure dans C:/PF/msys64/mingw64/include/SDL2.

  1. Télécharger gtk2hs de http://code.haskell.org/gtk2hs et exécuter

les éléments suivants

cd gtk2hs/tools 
cabal install 
cd ../glib 
cabal install 
cd ../gio 
cabal install 
cd ../pango 
cabal install --ghc-pkg-options="--force" 

(Peut-être que vous avez déjà installé glib et gio avant? Je l'ai fait étape parce que l'installation normale de Pango a provoqué une erreur pour moi (https://github.com/gtk2hs/gtk2hs/issues/110)

pango-0.13.1.0: include-dirs: /mingw64/include/freetype2 is a relative path 
which makes no sense (as there is nothing for it to be relative to). You can 
make paths relative to the package database itself by using ${pkgroot}. (use 
--force to override) 
  1. Une fois que les développeurs de Helm auront mis à jour les choses, vous devriez être capable de faire "cabal install helm" mais pour l'instant il semble y avoir des problèmes de dépendances. Pour moi, cabal essaye automatiquement d'installer helm-0.4 (probablement parce que 0.4 ne donnait pas de limite supérieure sur les dépendances, alors que les versions plus récentes le font.Vous pouvez essayer de "déballer" et de supprimer les limites supérieures ...). Puis

    barre-0,4 Déballez cabale

Installation donne une erreur parce que « pur » déplacé Prelude mais j'ai. Ouvrez la barre-0,4 \ src \ FRP \ Helm \ Automaton.hs et la ligne de changement 17:

import Prelude hiding (id, (.), pure) 

maintenant

cabal install 
  1. Essayez de compiler et exécuter un programme à l'aide de barre

(Ceci est 0,4 - regardez sur le site pour un échantillon plus récent si vous avez essayé une nouvelle barre)

import FRP.Helm 
import qualified FRP.Helm.Window as Window 

render :: (Int, Int) -> Element 
render (w, h) = collage w h [filled red $ rect (fromIntegral w) (fromIntegral h)] 

main :: IO() 
main = run $ fmap (fmap render) Window.dimensions 

Si vous obtenez une erreur à propos d'un .dll manquant (sdl.dll), trouvez-le dans un bin/dossier et ajoutez le dossier à votre PATH (ou copiez-le quelque part sur votre chemin).