2013-04-30 67 views
2

我使用repa-devil軟件包時出現問題,我使用cabal install repa-devil從cabal安裝。OS X上repa-devil軟件包的體系結構不匹配

例如,這裏是我的ghci的成績單的一部分:

Prelude Data.Array.Repa.IO.DevIL> :m + Data.Array.Repa.IO.DevIL 
Prelude Data.Array.Repa.IO.DevIL> let x = readImage "out1.png" 
Loading package transformers-0.3.0.0 ... linking ... done. 
Loading package array-0.4.0.0 ... linking ... done. 
Loading package deepseq-1.3.0.0 ... linking ... done. 
Loading package extensible-exceptions-0.1.1.4 ... linking ... done. 
Loading package old-locale-1.0.0.4 ... linking ... done. 
Loading package time-1.4 ... linking ... done. 
Loading package random-1.0.1.1 ... linking ... done. 
Loading package containers-0.4.2.1 ... linking ... done. 
Loading package pretty-1.1.1.0 ... linking ... done. 
Loading package template-haskell ... linking ... done. 
Loading package QuickCheck-2.4.2 ... linking ... done. 
Loading package bytestring-0.10.0.2 ... linking ... done. 
Loading package primitive-0.5.0.1 ... linking ... done. 
Loading package vector-0.10.0.1 ... linking ... done. 
Loading package repa-3.2.2.201204.1 ... linking ... done. 
Loading package repa-devil-0.3.2.2 ... can't load .so/.DLL for: libIL.dylib (dlopen(libIL.dylib, 9): no suitable image found. Did find: 
    /usr/local/lib/libIL.dylib: mach-o, but wrong architecture) 
Prelude Data.Array.Repa.IO.DevIL> 

上指定dylib文件運行脂:

edechter $ lipo -info /usr/local/lib/libIL.dylib 
Non-fat file: /usr/local/lib/libIL.dylib is architecture: x86_64 

uname -a 
Darwin helmholtz.local 12.3.0 Darwin Kernel Version 12.3.0: Sun Jan 6 22:37:10 PST 2013; root:xnu-2050.22.13~1/RELEASE_X86_64 x86_64 

任何幫助,將不勝感激。

回答

2

我相信你已經安裝了32位版本的Haskell平臺。但是,libdevil是爲64位體系結構編譯的。

您應該安裝64位版本的Haskell平臺(實際上不推薦)或者編譯32位庫。

就我個人而言,我使用64位版本的Haskell沒有太多問題(除了yesod和ghc 7.4的bug)。

+1

這是正確的!謝謝。我編譯了32位的libdevil。我也必須獲得32位的libpng。我用'brew重新安裝libpng --universal'。 – Eyal 2013-04-30 11:59:07