在Windows上安装friday-DevIL - “Missing C Library:IL”时出错

时间:2015-11-21 19:30:49

标签: haskell cabal haskell-platform friday

我遇到的问题类似于此处列出的问题:Trying to install Image.Codec.DevIL under windows. Needs pthread and IL. Can't get IL to work但我似乎无法按照评论中的一小段建议解决问题。

我在Windows 7上运行Haskell平台,并尝试安装和使用fridayhttps://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/找到的库,我也尝试使用上面建议的--extra-include-dirs=--extra-lib-dirs=选项手动指定DevIL中包含的库的位置。

我还试图使用MSYS2 shell和cygwin运行(当时用完了想法)。

我认为也许另一个答案是关于pthreads的事情,但我只是试图安装它并引用它,似乎没有任何改变。

我不确定此时还有什么可以尝试,任何想法都非常感激。

编辑:我在Ubuntu 14中遇到完全相同的问题,必须有一个我缺少的步骤/不理解某个地方。

进一步编辑:我已按照此答案中的建议运行sudo apt-get install libdevil-dev,成功克服了Ubuntu中的这个驼峰:g++ with DevIL: unable to link

还尝试了此页面上列出的所有内容:https://github.com/RaphaelJ/friday-devil/wiki/Windows并且错误仍然存​​在。

我想我需要弄清楚Windows中的等价物是什么?

1 个答案:

答案 0 :(得分:2)

我最终设法通过一些调整使用步骤here来实现这一点。

  

DevIL C库不带星期五魔鬼。那些试图使用   Windows上的friday-devil可以使用以下过程:

     
      
  1. 下载预建的Windows二进制文件和头文件。这些目前由来自" DevIL Windows SDK"中的sourceforge托管。夹。您将需要x86或x64变体,具体取决于您使用的GHC版本。

  2.   
  3. 在您的硬盘驱动器上的某处提取存档,例如C:\DevIL-1.7.8-x64

  4.   
  5. 使用friday-devil解压缩cabal unpack friday-devil

  6.   
  7. 编辑" friday-devil.cabal"文件,以便" Extra-Libraries"字段指定" DevIL"而不是" IL"。

         

    Extra-Libraries: DevIL

  8.   
  9. 使用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

  10.   

步骤3创建一个目录,例如friday-devil-0.1.1.1,这是您需要编辑的.cabal文件所在的位置。

尝试在步骤5中运行命令时,我没有成功。相反,我必须cd进入步骤3中创建的friday-devil-0.1.1.1目录,然后运行:

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步骤解决了我当前的问题。

我确信对于那些对一般情况更熟悉的人来说这可能只是一个简单/显而易见的事情(我对此很新),但是我会把它留在这里。帮助某人。