OS: Fedora linux 16
Arch: Intel 64 bits (core 2 duo)
Compiler prod. (from ifort -V): Intel Fortran Intel 64 Compiler XE for applications running on Intel 64, Version 18.104.22.1689 Build 20120410
A very basic and nave question, from an absolute beginner on MKL...
I need access to lapack (or lapack95) routines in order to implement another routine that evaluates the Whittaker function. Since the Composer XE pack provides the lapack routines with the MKL, I decided to try it.
Problem is, I never used MKL before...
So, I took a look around and found both in the MKL user guide and in this sticky thread:
that the simplest way to link with MKL libraries is to simply use the -mkl option.
With the intention to test the access, I'm trying to compile and link the program geevab.f90, which can be found in the $MKLROOT/examples directory.
Using only the aforementioned compiler option, the program compiles all right, but the linking fails:
$ifort geevab.f90 -mkl
/tmp/ifortuA610Z.o: In function `MAIN__':
geevab.f90:(.text+0x7a9): undefined reference to `sgeev_mkl95_'
geevab.f90:(.text+0xe97): undefined reference to `cgeev_mkl95_'
The error is exactly the same if I employ the dynamic linking model referred in the thread:
ifort -mkl geevab.f90 -lmkl_rt -o geevab
Using the Link Line Advisor, the result is even worse. The compilation line I used, suggested by the advisor, is:
ifort -i8 -I$(MKLROOT)/include/intel64/ilp64 -I$(MKLROOT)/include geevab.f90 $(MKLROOT)/lib/intel64/libmkl_lapack95_ilp64.a -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_ilp64.a $(MKLROOT)/lib/intel64/libmkl_sequential.a $(MKLROOT)/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -o geevab
In this case, I get even more error messages.
What am I doing wrong? Do I have to first generate the libraries before being able to actually use them? I assumed that they were already provided, along with the rest of the compiler system.