Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Making sure external C library DLLs are available at runtime is too easy to get wrong #856

Open
bos opened this Issue May 24, 2012 · 1 comment

Comments

Projects
None yet
2 participants
Contributor

bos commented May 24, 2012

(Imported from Trac #866, reported by guest on 2011-07-21)

I recently installed the hmatrix package on a Windows 7 system via using the Haskell Platform (installed only a few months ago). The hmatrix installation appeared to be successful (with an OK on foreign functions), and I can successfully compile Haskell programs that use hmatrix functions. However, when I attempt to run these programs I get the follow system error:

"The program can't start because lapack.dll is missing from your computer. Try reinstalling the program to fix this problem."

I get similar error messages if I attempt to use hmatrix functions in ghci (after importing Numeric.LinearAlgebra?).

The file lapack.dll is clearly visible in my folder C:\Haskell\gsl, which also includes a gsl subfolder, blas.dll, libgsl-0.dll, and libgslcblas-0.dll. I installed hmatrix with the following parameters

cabal install hmatrix --extra-lib-dir=C:\Haskell\gsl --extra-include-dir=C:\Haskell\gsl

Why is lapack.dll inaccessible at runtime despite successful installation of the package?

Contributor

bos commented May 24, 2012

(Imported comment by @dcoutts on 2011-07-21)

Why is lapack.dll inaccessible at runtime despite successful installation of the package?

Because unfortunately, finding libraries at link time and at runtime are just totally different (on Windows, Linux and OSX).

To find the .dll at runtime on Windows, the .dll has to be in one of:

  • the same dir as your .exe
  • a windows system dir (not recommended)
  • in a directory that is on the %PATH% (works ok but is a bit fragile)
This problem is not unique to Haskell, but we could perhaps have the tools check and explain it better. I'm open to suggestions.

@bos bos referenced this issue May 24, 2012

Closed

"cabal list" fails #875

@ttuegel ttuegel added this to the _|_ milestone Apr 23, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment