MKL static linking

MKL static linking

Hi All,
I have the latest version of MKL installed with IFC 7.1

I compiled my program by the following command:

ifc try.f -o try -L /opt/intel/mkl60/lib/32 -lmkl_lapack -lmkl_ia32 -lguide -lpthread

it works fine but when i run it on some other node of the cluster: it gives me error

./try: error while loading shared libraries: libguide.so: cannot open shared object file: no such file or directory

I was under the impression that it is linking all the libraries statically because libguide.a exists in the mentioned directory. What is the problem here? I want to link all the
libraries statically so that i can run them on a different node/computer.
please help.

-Amit.

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

While we've heard that MKL would no longer support static linking, I see that the blurb on developer.intel.com specifically says both dynamic and static linking are supported. It also says you are permitted to copy the dynamic link libraries.

Note that, unlike earlier versions, where you had to choose a single architecture version (p4/p3/generic), it appears that a static link would include all the versions.

I think that the supported link option, in place of -lguide -lpthread, would be -openmp, but I'm not claiming that would make a difference.

In any case, you could use ldd to find out which .so libraries are required, and save yourself some trial and error.

An issue submission on premier.intel.com would be appropriate to ask for clarification.

Leave a Comment

Please sign in to add a comment. Not a member? Join today