2017-05-25 2 views
1

J'essaie de configurer hmatrix sur ma machine Windows 10 avec GHC 8.0.2. Je suivais la réponse here mais quand j'essaie de la construire, elle dit qu'elle ne peut pas trouver libgfortran-3.dll bien que je sois sûre de l'avoir ajoutée au dossier bin dans le répertoire BLAS. Mon code est en here je lance stack build et voici ce que je reçois:La pile ne trouve pas libgfortran-3.dll en essayant de construire avec hmatrix

hmatrix-0.18.0.0: configure 
Progress: 1/2 
-- While building package hmatrix-0.18.0.0 using: 
     C:\sr\setup-exe-cache\x86_64-windows\Cabal-simple_Z6RU0evB_1.24.2.0_ghc-8.0.2.exe --builddir=.stack-work\dist\ca59d0ab configure "--with-ghc=C:\\Program Files\\Haskell Platform\\8.0.2\\bin\\ghc.EXE" "--with-ghc-pkg=C:\\Program Files\\Haskell Platform\\8.0.2\\bin\\ghc-pkg.EXE" --user --package-db=clear --package-db=global --package-db=C:\sr\snapshots\b201cfe6\pkgdb --package-db=D:\Haskell\networks\.stack-work\install\65995373\pkgdb --libdir=D:\Haskell\networks\.stack-work\install\65995373\lib --bindir=D:\Haskell\networks\.stack-work\install\65995373\bin --datadir=D:\Haskell\networks\.stack-work\install\65995373\share --libexecdir=D:\Haskell\networks\.stack-work\install\65995373\libexec --sysconfdir=D:\Haskell\networks\.stack-work\install\65995373\etc --docdir=D:\Haskell\networks\.stack-work\install\65995373\doc\hmatrix-0.18.0.0 --htmldir=D:\Haskell\networks\.stack-work\install\65995373\doc\hmatrix-0.18.0.0 --haddockdir=D:\Haskell\networks\.stack-work\install\65995373\doc\hmatrix-0.18.0.0 --dependency=array=array-0.5.1.1 --dependency=base=base-4.9.1.0 --dependency=binary=binary-0.8.3.0 --dependency=bytestring=bytestring-0.10.8.1 --dependency=deepseq=deepseq-1.4.2.0 --dependency=random=random-1.1-9tceXaeYIMZ4JrKq20Egog --dependency=split=split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk --dependency=storable-complex=storable-complex-0.2.2-G9QzpmZTKvgKKVagrcRWdL --dependency=vector=vector-0.11.0.0-HhutbadagxHIONIkSRJEug -fopenblas --extra-include-dirs=C:\OpenBLAS-v0.2.19-Win64-int32\include --extra-include-dirs=C:\Users\Yotam\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\include --extra-lib-dirs=C:\OpenBLAS-v0.2.19-Win64-int32\bin --extra-lib-dirs=C:\Users\Yotam\AppData\Local\Programs\stack\x86_64-windows\msys2-20150512\mingw64\lib 
    Process exited with code: ExitFailure 1 
    Logs have been written to: D:\Haskell\networks\.stack-work\logs\hmatrix-0.18.0.0.log 

    Configuring hmatrix-0.18.0.0... 
    Cabal-simple_Z6RU0evB_1.24.2.0_ghc-8.0.2.exe: Missing dependency on a foreign 
    library: 
    * Missing C library: libgfortran-3 
    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. 

D: \ OpenBLAS-v0.2.19-Win64-int32 \ bin inclut à la fois libopenblas.dll et libgfortran-3.dll et le répertoire blas a été prise de ce url

Merci pour toute aide

+0

Est-ce répertoire sur votre 'path'? – liminalisht

+0

Non, mais même lorsque je l'ajoute au chemin, le résultat est le même. –

+0

Je sais que je ne devrais pas dire ceci, mais ... êtes-vous sûr que vous voulez utiliser _'hmatrix' sur Windows_? Je n'aime pas les deux individuellement, pour des raisons sans rapport ('hmatrix' pour sa moche interface de type Matlab, Windows pour sa fermeture), et' hmatrix'' base GSL en fait un choix évident pour les systèmes basés sur GNU/Linux. Bien qu'il doive fonctionner sur Windows aussi (comme le fait Octave), il sera certainement beaucoup plus facile de l'utiliser sous Linux ou d'utiliser une alternative native de Haskell sur laquelle Stack a le contrôle, sous Windows. (_Or_ sur Linux ...) Quel genre d'algèbre linéaire est-ce que vous devez faire? – leftaroundabout

Répondre

1

J'ai réussi à l'installer comme suit. Dans yourpath\to\stack\x86_64-windows\msys2-20150512, ouvrez un shell msys2 en double-cliquant sur msys2_shell.bat.

Dans le shell, tapez:

pacman -S mingw-w64-x86_64-toolchain 

ajouter ensuite ces "extra" dans stack.yaml:

extra-include-dirs: 
- yourpath\to\OpenBLAS\include 
extra-lib-dirs: 
- yourpath\to\OpenBLAS\lib 
- yourpath\to\stack\x86_64-windows\msys2-20150512\usr\lib\gcc\x86_64-pc-msys\6.3.0 
- yourpath\to\stack\x86_64-windows\msys2-20150512\mingw64\bin 
+0

Cela a fonctionné, merci. Y at-il un moyen plus facile d'accéder au shell msys2 par défaut? –

+0

@YotamOhad Aucune idée. J'ai découvert ça hier. –

+0

@YotamOhad Avez-vous réussi à installer 'hmatrix-gsl'? Je ne peux pas trouver la bibliothèque C 'gsl-0'. –