$ g77 test.f -L/usr/lib64/ -llapack -lblas /usr/bin/ld: cannot find -llapack collect2: ld returned 1 exit status
I was quite puzzled as I have installed lapack and blas. And it seems that lapack is having issues
To check whether you have the libraries, you can use the command
$ ldconfig -p | grep llapack libscalapack.so.1 (libc6,x86-64) => /usr/lib64/libscalapack.so.1 liblapack.so.3 (libc6,x86-64) => /usr/lib64/liblapack.so.3So it is not an issue of missing lapack libraries. It is there.
"On systems which support shared libraries, ld may also search for libraries with exten-
sions other than ".a". Specifically, on ELF and SunOS systems, ld will search a direc-
tory for a library with an extension of ".so" before searching for one with an exten-
sion of ".a". By convention, a ".so" extension indicates a shared library.
The linker will search an archive only once, at the location where it is specified on
the command line. If the archive defines a symbol which was undefined in some object
which appeared before the archive on the command line, the linker will include the
appropriate file(s) from the archive. However, an undefined symbol in an object
appearing later on the command line will not cause the linker to search the archive
again."
So just do a quick soft-links and the problem was solved
$ ln -s /usr/lib64/liblapack.so.3 /usr/lib64/liblapack.so
1 comment:
Thanks so much for your valuable post,
I installed lapack through the package manager. I could not figure out why it wasn't recognized when compiling.
Your trick solved this issue.
Regards,
Post a Comment