Haskell library package missing c

I am having trouble creating an hmatrix library on OS X Lion. Looking at the .cabal file, it requires the gsl library, so I installed it using macports. The .a files are in / opt / local / lib, and the .h files are in / opt / local / include / gsl

As suggested here, I changed the built-in type from Custom to Simple. (without this change, I get a similar error).

When I use cabal configure , I get the following output:

 * 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. 

So, I tried cabal --extra-include-dirs=/opt/local/include --extra-lib-dirs=/opt/local/lib configure , but I still get the same error. I can compile and link the c program, which includes gsl. What files are the bondage looking for? If I have the files I need, how can I say how to find them?

libgsl.a - universal binary file:

 $ 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 looks like 64-bit:

 $ 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\"]") ] 
+7
source share
2 answers

As an alternative to mac ports, you can use the nix package manager for mac. This is a pretty good c-dependency care job for the libraries available through it. All in all, I was more pleased with this than any other Mac package manager.

Unfortunately, mac (darwin), unlike linux, does not have as many binaries available through nix, so installing ghc often means waiting for it to compile.

The ghc and hmatrix installation commands after installing nix:

 nix-env -iA nixpkgs-unstable.haskellPackages.ghc nix-env -iA nixpkgs-unstable.haskellPackages.hmatrix 

All necessary dependencies will be considered for you.

I just tried this on my macbook pro, and hmatrix seems to work correctly in ghci after trying the commands from the first few pages of the tutorial .

+2
source

I'm not a Mac person, but it looks like you did not install the "-dev" version. For Mac, I suspect you need to install gsl-devel in addition to gsl . If the problem libgsl0-dev , make sure you have libgsl0-dev in the path of your library.

+1
source

All Articles