2015-11-21 3 views
1

У меня проблема, подобная той, что указана здесь: Trying to install Image.Codec.DevIL under windows. Needs pthread and IL. Can't get IL to work Но я, похоже, не в состоянии разрешить это, следуя небольшим советам в комментарии.Ошибка установки friday-DevIL - «Отсутствует библиотека C: IL» в Windows

Я бег Haskell Platform на Windows 7, и я пытаюсь установить и использовать friday пакет https://hackage.haskell.org/package/friday

Я могу успешно работать cabal install package friday, но при попытке запуска cabal install package friday-devil, установка пакета терпит неудачу со следующими ошибками :

Resolving dependencies... 
Configuring friday-devil-0.1.1.1... 
Failed to install friday-devil-0.1.1.1 Last 10 lines of the build log (C:\Users\Chris\AppData\Roaming\cabal\logs\friday-devil-0.1.1.1.log):  
Configuring friday-devil-0.1.1.1... 
setup-Cabal-1.18.1.3-x86_64-windows-ghc-7.8.3.exe: Missing dependency on a foreign library:  
* Missing C library: IL 
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: Error: some packages failed to install: 
friday-devil-0.1.1.1 failed during the configure step. The exception was: 
ExitFailure 1 

Я установил библиотеки, найденные на http://openil.sourceforge.net/, я также пытался вручную указать местоположение LIBS включены в DevIL с --extra-include-dirs= и --extra-lib-dirs= Opti предложенные выше.

Я также попытался запустить с использованием оболочки MSYS2 и через cygwin (заканчивая идеи в этой точке).

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

Я не уверен, что еще попробовать в этом пункте, любые мысли, которые были высоко оценены.

Редактировать: Я получаю точно такую ​​же проблему в Ubuntu 14, должен быть шаг, который я пропускаю/не понимаю где-то.

Далее Edit: я сумел получить за этот горб в Ubuntu, запустив sudo apt-get install libdevil-dev как предложено в этом ответе: g++ with DevIL: unable to link

Также попробовал все перечисленные на этой странице: https://github.com/RaphaelJ/friday-devil/wiki/Windows и ошибка не будет устранена.

Я думаю, мне нужно выяснить, что такое эквивалент в Windows?

+1

Это не слишком распространенные люди, которые ныряют достаточно далеко, чтобы действительно решить проблемы, связанные с elses. Если вы не получите достаточной помощи при использовании friday-devil, тогда рассмотрите мой мотив пятнистого сокапикселя. JuicyPixels - это чистая библиотека сериализации изображений Haskell - медленнее, чем DevIL, но она позволяет избежать зависимости библиотеки C. –

+0

Спасибо, я мог бы просто сделать это. Кажется позором, чтобы не понять, что мне не хватает, но на данный момент это просто мешает мне получить что-либо сделать = D – Chris

ответ

2

Мне в итоге удалось заставить это работать, используя шаги here с несколькими настройками.

Библиотеки DevIL C не поставляются с пятнистым дьяволом. Те, кто пытается использовать Пятницы дьявола на Windows, можно использовать следующую procedue:

  1. Скачать прекомпилированную Windows, исполняемые файлы и файлы заголовки. В настоящее время они размещаются у исходников в папке «DevIL Windows SDK». Вам понадобится либо x86, либо вариант x64 в зависимости от того, какую версию GHC вы используете.

  2. Извлеките архив где-нибудь на свой жесткий диск, например C:\DevIL-1.7.8-x64.

  3. Распаковать friday-devil с cabal unpack friday-devil.

  4. Редактировать «friday-devil.cabal» файл так, что поле «Extra-Libraries» указывает «DevIL» вместо «IL».

    Extra-Libraries: DevIL

  5. установить friday-devil с cabal install friday-devil --extra-lib-dirs=c:\devil-1.7.8-x64 --extra-include-dirs=c:\devil-1.7.8-x64\include.

Шаг 3 создает каталог, например, friday-devil-0.1.1.1, где находится файл .cabal, который вам нужно изменить.

я был неудачен при попытке выполнить команду на шаге 5. Вместо этого я должен был cd в friday-devil-0.1.1.1 каталог, созданный на шаге 3, и просто запустите:

cabal install --extra-lib-dirs=c:\devil-1.7.8-x64 --extra-include-dirs=c:\devil-1.7.8-x64\include. 

без указания friday-devil.

Возможно, что при выполнении полной команды cabal использовал ранее загруженную версию (хотя вчера я уверенно, что я также изменил загруженный пакет в каталоге cabal). Я могу пересмотреть это в другой системе в какой-то момент, но измененный выше шаг cabal install решил мою непосредственную проблему.

Я уверен, что это может быть просто или очевидным для людей, более знакомых с кабалой вообще (я новичок в этом), но я оставлю это здесь, когда это помогает кому-то.

+0

Спасибо, это сработало для меня! Еще один намек: после успешной установки пакета вам также нужно разместить DLL-файлы DevIL где-то в вашей PATH (или локально рядом с вашей скомпилированной программой Haskell). –

+1

Рад, что это было полезно для кого-то еще, я царапал себе голову на века = D – Chris

Смежные вопросы