我遇到的问题类似于此处列出的问题:Trying to install Image.Codec.DevIL under windows. Needs pthread and IL. Can't get IL to work但我似乎无法按照评论中的一小段建议解决问题。
我在Windows 7上运行Haskell平台,并尝试安装和使用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/找到的库,我也尝试使用上面建议的--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中的等价物是什么?
答案 0 :(得分:2)
我最终设法通过一些调整使用步骤here来实现这一点。
DevIL C库不带星期五魔鬼。那些试图使用 Windows上的friday-devil可以使用以下过程:
下载预建的Windows二进制文件和头文件。这些目前由来自" DevIL Windows SDK"中的sourceforge托管。夹。您将需要x86或x64变体,具体取决于您使用的GHC版本。
在您的硬盘驱动器上的某处提取存档,例如
C:\DevIL-1.7.8-x64
。使用
friday-devil
解压缩cabal unpack friday-devil
。编辑"
friday-devil.cabal
"文件,以便"Extra-Libraries
"字段指定"DevIL
"而不是"IL
"。
Extra-Libraries: DevIL
- 醇>
使用
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
进入步骤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
步骤解决了我当前的问题。
我确信对于那些对一般情况更熟悉的人来说这可能只是一个简单/显而易见的事情(我对此很新),但是我会把它留在这里。帮助某人。