Ich habe Probleme beim Aufbau der hmatrix library auf OS X Lion. Betrachtet man die .cabal-Datei, benötigt man die Bibliothek gsl
, also habe ich sie mit Macports installiert. Die .a Dateien sind in/opt/local/lib und die .h Dateien sind in/opt/local/include/gslHaskell Paket fehlt c Bibliothek
Wie vorgeschlagen here Ich änderte den eingebauten Typ von Custom zu Simple. (Ohne diese Änderung bekomme ich einen ähnlichen Fehler).
Wenn ich cabal configure
verwende ich erhalte die folgende Ausgabe:
* 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.
Also habe ich versucht cabal --extra-include-dirs=/opt/local/include --extra-lib-dirs=/opt/local/lib configure
, aber ich immer noch die gleichen Fehler. Ich kann ein c-Programm kompilieren und verknüpfen, das gsl enthält. Nach welchen Dateien sucht Cabal? Wenn ich die richtigen Dateien habe, wie kann ich ihnen sagen, wie sie zu finden sind?
libgsl.a ist eine Universal Binary:
$ 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 sieht aus wie es 64-Bit ist:
$ 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\"]")
]
Komplette Aufnahme im Dunkeln: Haben Sie g ++ installiert? Ich erinnere mich daran, eine andere Bibliothek zu installieren und ähnliche seltsame Fehlermeldungen zu erhalten (es gab auch keine C-Bibliotheken, die eindeutig installiert waren); Später stellte sich heraus, dass es auch g ++ brauchte. –
Ich habe g ++ installiert. – munk
Haben Sie "cabal install -v hmatrix" probiert, um den fehlgeschlagenen Schritt zu sehen? Es könnte helfen, das Problem einzugrenzen. –