I get "lapack.h: No such file or directory" although I installed liblapack-dev
Solution 1
I experienced a similar issue on Debian. I noticed that
dpkg -L liblapack-dev
did not return a single header file. So I did some searching with apt-cache
and found what appears to be C headers. After installing via
sudo apt-get install liblapacke-dev
(note the extra e!), I was able to compile a minimal working example, found here. Modifying the include
at the top to read
#include <lapacke.h>
and compiling with
gcc -llapack lapack_example.c
successfully runs on my system. Hope this helps someone.
Solution 2
Answering because it doesn't fit in a comment:
The manual says:
Standard C language APIs for LAPACK
collaboration LAPACK and INTEL Math Kernel Library Team
LAPACK C INTERFACE is now included in the LAPACK package (in the lapacke directory)
LAPACKE User Guide
Updated: April 20, 2012
header files: lapacke.h, lapacke_config.h, lapacke_mangling.h, lapacke_utils.h
so perhaps you need to
#include <lapacke.h>
iCanLearn
Updated on July 22, 2022Comments
-
iCanLearn almost 2 years
I installed liblapack-dev and its dependencies using Synaptic, and I included
<lapack.h>
in my code.If I try to compile my program like this...
mpicc program.c -llapack -o output
...I get the following error:
program.c:4:20: fatal error: lapack.h: No such file or directory compilation terminated.
How can I fix this? I've already spent hours googling for a solution but nothing helped.
I'm using Linux Mint, but I tried the same thing on the latest version of Ubuntu and it still wouldn't work. Same thing when I try "eliminating" MPI from my program and compiling with gcc.
-
iCanLearn over 11 yearsI'll upvote this because you're trying to help me, but the truth is: I actually tried that first, and it is what I ultimately want to use (lapacke), but then I realised that not even lapack (without the "e") works for me and figured I should get that working first (since lapacke is a part of lapack).
-
Daniel Fischer over 11 yearsAh, but the point is that there is no
lapack.h
, as far as I can determine. Maybe the user's guide sheds more light. -
iCanLearn over 11 yearsThere is lapack.h because I've seen programs using it run on other computers. I've already seen the user's guide. Admittedly, I haven't read the whole thing, but still, I haven't found a solution to my problems in the parts of it which seemed relevant.
-
Daniel Fischer over 11 yearsI've searched the sources, at least the LAPACK package has no
lapack.h
. The C interface it provides is LAPACKE, but you have to prefix the functions you call,info = LAPACKE_dgels(LAPACK_ROW_MAJOR,'N',m,n,nrhs,*a,lda,*b,ldb);
etc. Maybe there was alapack.h
in older versions, or it comes from another package where it is used. I can't find anything helpful about using LAPACK withlapack.h
with google, sorry. -
iCanLearn over 11 yearsYeah, sorry, I think you might be right, "lapack.h" might even be a Fortran-only thing (and what I saw was possibly "mkl_lapack.h"?)
-
Toby over 7 yearsThanks, that helped me to get opencv to compile.