7

OS X Lion でhmatrix ライブラリをビルドできません。.cabal ファイルを見ると、gslライブラリが必要なので、macports でインストールしました。.a ファイルは /opt/local/lib にあり、.h ファイルは /opt/local/include/gsl にあります。

ここで提案されている ように、組み込みタイプを Custom から Simple に変更しました。(その変更がなければ、同様のエラーが発生します)。

使用するcabal configureと、次の出力が得られます。

* Missing C library: gsl
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 --extra-include-dirs=/opt/local/include --extra-lib-dirs=/opt/local/lib configureましたが、それでも同じエラーが発生します。gsl を含む ac プログラムをコンパイルおよびリンクできます。cabal が探しているファイルは何ですか? 適切なファイルがある場合、それらを見つける方法をどのように伝えるのですか?

libgsl.a はユニバーサル バイナリです。

$ file /opt/local/lib/libgsl.a
    /opt/local/lib/libgsl.a: Mach-O universal binary with 2 architectures
    /opt/local/lib/libgsl.a (for architecture x86_64):  current ar archive random library
    /opt/local/lib/libgsl.a (for architecture i386):    current ar archive random library

ghc は 64 ビットのように見えます:

$ ghc --info
 [("Project name","The Glorious Glasgow Haskell Compilation System")
 ,("GCC extra via C opts"," -fwrapv")
 ,("C compiler command","/usr/bin/llvm-gcc")
 ,("C compiler flags"," -m64 -fno-stack-protector  -m64")
 ,("ar command","/usr/bin/ar")
 ,("ar flags","clqs")
 ,("ar supports at file","NO")
 ,("touch command","touch")
 ,("dllwrap command","/bin/false")
 ,("windres command","/bin/false")
 ,("perl command","/usr/bin/perl")
 ,("target os","OSDarwin")
 ,("target arch","ArchX86_64")
 ,("target word size","8")
 ,("target has GNU nonexec stack","False")
 ,("target has subsections via symbols","True")
 ,("Project version","7.4.2")
 ,("Booter version","7.4.2")
 ,("Stage","2")
 ,("Build platform","x86_64-apple-darwin")
 ,("Host platform","x86_64-apple-darwin")
 ,("Target platform","x86_64-apple-darwin")
 ,("Have interpreter","YES")
 ,("Object splitting supported","NO")
 ,("Have native code generator","YES")
 ,("Support SMP","YES")
 ,("Unregisterised","NO")
 ,("Tables next to code","YES")
 ,("RTS ways","l debug  thr thr_debug thr_l thr_p  dyn debug_dyn thr_dyn thr_debug_dyn")
 ,("Leading underscore","YES")
 ,("Debug on","False")
 ,("LibDir","/usr/local/Cellar/ghc/7.4.2/lib/ghc-7.4.2")
 ,("Global Package DB","/usr/local/Cellar/ghc/7.4.2/lib/ghc-7.4.2/package.conf.d")
 ,("Gcc Linker flags","[\"-m64\"]")
 ,("Ld Linker flags","[\"-arch\",\"x86_64\"]")
 ]
4

2 に答える 2

1

私は Mac 派ではありませんが、「-dev」バージョンをインストールしていないようです。gsl-develMac の場合は、に加えてインストールする必要があると思いますgsl。問題が解決しない場合はlibgsl0-dev、ライブラリ パス上にあることを確認してください。

于 2013-04-30T17:14:22.630 に答える