Пытаюсь установить Image.Codec.DevIL под windows. Нужен pthread и IL. Не могу заставить IL работать

Это результат установки кабалы codec-image-devil:

Resolving dependencies...  
Configuring Codec-Image-DevIL-0.2.3...  
cabal: 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:  
Codec-Image-DevIL-0.2.3 failed during the configure step. The exception was:  
ExitFailure 1  

Я пробовал --extra-include-dirs и --extra-lib-dirs. но они не работали. поэтому я отредактировал .cabal в Codec-Image-DevIL-0.2.3.tar.gz. Я не знаю, должен ли я вообще это изменить. но это сработало для pthread.

Я добавил эти две строки:

include-dirs: C:\Users\Rumbold\Documents\libs\IL\include, C:\Users\Rumbold\Documents\libs\pthread\include, .  
extra-lib-dirs: C:\Users\Rumbold\Documents\libs\IL\lib, C:\Users\Rumbold\Documents\libs\pthread\lib, .  

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

Любая подсказка, как я могу заставить его работать?

Редактировать_1:

Я заставил его работать с --extra-include-dirs и --extra-lib-dirs, поэтому мне больше не нужно редактировать клику. но IL все еще не работает. есть ли способ узнать, какие файлы он ищет?

Wdit_2:

Хорошо, это работает. Мне пришлось переименовать DevIL.lib и DevIL.dll в libIL.lib и libIL.dll. (не уверен, что мне пришлось делать и то, и другое, но я так и сделал. Также сохранил их под своими старыми именами)

Редактировать_3:

Получение большого количества ошибок, таких как:

"cabal\Codec-Image-DevIL-0.2.3\ghc-6.12.3/libHSCodec-Image-DevIL-0.2.3.a(DevIL.o):fake:(.text+0x2379):
undefined reference to `ilGetInteger@4'"

person user616024    schedule 14.02.2011    source источник
comment
Запятая является разделителем для директорий include-dirs и extra-lib. В Windows рекомендуется заключать пути в двойные кавычки. После того, как вы начали работать с привязками FFI в Windows, вы действительно захотите использовать правильную установку MinGW/MSYS, а не полагаться на ее части, которые распространяются с GHC. DevIL, кажется, распространяет DLL плюс заголовки, поэтому вы также можете создать привязку с Cygwin. Обратите внимание, что если вы перейдете на MinGW/MSYS, я думаю, вам нужно использовать разделители путей с двойной косой чертой для include-dirs и extra-lib-dirs.   -  person stephen tetley    schedule 14.02.2011
comment
Являются ли ошибки неопределенными ссылками во время установки клики или после нее при попытке скомпилировать что-то, что использует HSCodec-Image-DevIL?   -  person stephen tetley    schedule 15.02.2011
comment
после. установка клики сработала, но теперь, когда я хочу скомпилировать свою программу, использующую codec.image.devil, я получаю эти ошибки.   -  person user616024    schedule 15.02.2011
comment
Хорошо - лучше потом. Вы все еще указываете GHC использовать --extra-lib-dirs при компиляции вашей программы? Я подозреваю, что вам может понадобиться это сделать, так как, хотя вы установили библиотеку привязки DevIL, для компиляции исполняемого файла все равно может потребоваться знать, где находится DLL. Если вы можете скомпилировать, но затем получаете ошибки времени выполнения из-за того, что DLL не может быть найдена, попробуйте скопировать DLL в тот же каталог, что и EXE.   -  person stephen tetley    schedule 15.02.2011
comment
это работает сейчас. Раньше я использовал leksah, теперь я скомпилировал его вручную с помощью ghc. Сначала я скомпилировал без компоновки, что дало мне два файла .o. затем я скопировал devil.dll и devil.lib в одну и ту же папку и связал два моих файла .o с devil.lib и файлом .o, созданным кликой для codec.image.devil.   -  person user616024    schedule 15.02.2011