2016-06-30 7 views
0

Я пытаюсь установить hmatrix на мой (64-разрядный) компьютер с Windows 10; после поиска и тестирования множества возможных решений (включая инструкции в разделе «Windows» и «Alternative Windows Build», приведенные here), я решил продолжить курс действий, указанный на этом Reddit thread.Неисправность установки hmatrix через MSYS2 в Windows 10

Однако, когда я печатаю в команде

cabal install hmatrix -fopenblas --extra-lib-dir=${c:\msys64\mingw64\bin} --extra-include-dir=${c:\msys64\mingw64\include} 

в MSYS2 оболочки, следующий журнал Дано:

Resolving dependencies... 
Configuring hmatrix-0.17.0.2... 
Failed to install hmatrix-0.17.0.2 
Build log (C:\Users\Christian\AppData\Roaming\cabal\logs\hmatrix-0.17.0.2.log): 
Configuring hmatrix-0.17.0.2... 
cabal.exe: Missing dependency on a foreign library: 
* Missing C library: libopenblas 
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. 
cabal: Leaving directory 'C:\msys64\tmp\cabal-tmp-4244\hmatrix-0.17.0.2' 
cabal.exe: Error: some packages failed to install: 
hmatrix-0.17.0.2 failed during the configure step. The exception was: 
ExitFailure 1 

Однако, когда я просматриваю каталог c:\msys64\mingw64\bin, я вижу, что libopenblas.dll находится прямо там; Я не знаю, почему кабала, похоже, не может ее найти.

Любое понимание того, почему это не работает или что делать?

UPDATE: Файлы libopenblas.dll.a и libopenblas.a находятся в каталоге c:\msys64\mingw64\lib. Возможно ли мне каким-то образом включить этот каталог? (Если да, то как бы я это сделал?)

Я также загрузил файлы в комментарий Алексея Воробьева ниже и поместил их в c:\msys64\mingw64\bin, если они .dlls или c:\msys64\mingw64\lib, если они .libs. Файлы заголовков уже содержались в c:\msys64\include\openblas.

Я попытался несколько вариаций на команды в исходном посте после внесения этих изменений, в том числе переключение \bin с \lib и переключение \include с \include\openblas, но они все еще дают ту же ошибку.

+0

dll недостаточно для компиляции с библиотекой. Вам нужны файлы разработки, а также заголовки C++ и .lib-файлы. См. Здесь http://icl.cs.utk.edu/lapack-for-windows/lapack/#libraries_mingw –

+0

Я попытался загрузить файлы и продолжить, как описано выше в моем редактировании, но я получаю ту же ошибку. –

ответ

0

Я немного подозрительными о

if os(windows) 
    if flag(openblas) 
     extra-libraries: libopenblas 

в Кабал файл, вы могли бы распаковать его и удалить «Lib» часть? Если это не работает, отправьте журнал с выходом -v3. Я видел немало людей с проблемами, устанавливающими этот пакет. Так можете ли вы также открыть билет на трекер ошибок GHC, если это не сработает (и CC me «Phyx-»)?

Во-вторых, вы никогда не говорили, какую версию GHC вы используете. 8.0.1 должен иметь гораздо меньше проблем (и не понадобится взломать его работу в GHCi), поскольку компоновщик времени выполнения был переработан и должен быть намного лучше в Windows. 8.0.2, скорее всего, также будет включать поддержку новых библиотек импорта.