Problem Linking

Problem Linking


I am having problems using Lapack on a Dell Linux machine (redhat) with a Xeon chip. I installed mkl and try to compile with ifc using;

ifc -pc80 -cm -w -o test test.f -L/opt/intel/mkl721/lib/64 -lmkl_lapack64 -lmkl_def -lguide -lpthread -O3 -r8 -tpp7

and the error message is

/opt/intel/mkl721/lib/64/ file not recognized: File format not recognized

There are no complaints at compilation that subroutines/functions can't be found.

If I use lapack32 then the routines I need cannot be found. I've tried various permutations of "32" and "64" in the above and nothing works.

Any suggestions would be greatly appreciated!


Message Edited by davidfarrelly on 06-10-2005 02:20 PM

Message Edited by davidfarrelly on 06-10-2005 02:38 PM

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

That's an Itanium library. If you are using a 32-bit compiler, you need those in /lib/32/. If you are running an x86-64 linux, with 64-bit compilers, you need the em64t libraries. You should have 3 directories under mkl721/lib, to cover the 3 varieties. The only use for the /64 directory is where you have an Itanium system where mkl won't install, and you need to copy it over there.

EDITED: Problem solved using;

ifc -i_dynamic -pc80 -cm -w -o test test.f -L/opt/intel/mkl721/lib/32 -lmkl_lapack -lmkl_ia32 -lguide -lpthread -O3 -r8 -tpp7

Again, thanks for the help!

Pre-edited message below (will leave since might be useful for reference)



Thanks - I still have some problems;

If I do this:

ifc -i_dynamic -pc80 -cm -w -o test test.f -L/opt/intel/mkl721/lib/32 -lmkl_lapack32 -lmkl_def -lguide -lpthread -O3 -r8 -tpp7

the error message on compilation is:

11057 Lines Compiled
/tmp/ifcwhTfKM.o(.text+0x3bc6): In function `syminv_':
: undefined reference to `dsytrf_'
/tmp/ifcwhTfKM.o(.text+0x3c46): In function `syminv_':
: undefined reference to `dsytri_'
/tmp/ifcwhTfKM.o(.text+0x11794): In function `f02aaf_':
: undefined reference to `dsyevx_'
/tmp/ifcwhTfKM.o(.text+0x11a1a): In function `f02abf_':
: undefined reference to `dsyevx_'

whereas if I use the lapack64 in /32 i.e.,

ifc -i_dynamic -pc80 -cm -w -o test test.f -L/opt/intel/mkl721/lib/32 -lmkl_lapack64 -lmkl_def -lguide -lpthread -O3 -r8 -tpp7

it compiles ok, but when I try to run it I get this;

./bnd_linnh3: error while loading shared libraries: cannot open shared object file: No such file or directory.

I'm migrating from 64 bit DEC alphas so sorry to be so naive about how to do all this!


Message Edited by davidfarrelly on 06-10-2005 04:56 PM

You're very close now. You need to add the path ofdynamic libraries ( in this case) to the LD_LIBRARY_PATH environment variable so that the loader can find them at runtime. The following should work:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/mkl721/lib/32

The script is provided in the tools/environment directory of MKL. You could just source this script.


Login to leave a comment.