Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

Link statically with MKL

Gabriel_Toro
Beginner
145 Views

Hi,

I have a program that calls an MKL eigenvalue subroutine and I want to distribute copies of my program to others within my firm. Is it possible to link MKL statically? I understand this is not the preferred option, but static linking avoids many installation headaches. I am already linking the runtime libraries statically. Also, is there an option in Developer Studio for this? If not, I supposed I can still do it via the Command Line tab in DevStudio.

Thanks and my apologies if the question has been asked before.

Gabriel

0 Kudos
4 Replies
Roman1
New Contributor I
145 Views

You might want to look at:

https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/

In the "Select dynamic or static linking:" field, choose "Static".

 

Gabriel_Toro
Beginner
145 Views

Thanks Roman for the suggestion. Unfortunately, it does not work. I still get asked for several dll's at startup and for others later when the eigenvalue subroutine DSPEVX.  

Any other suggestions out there?  BTW, I am using the latest IFORT and MKL 2017 and I use the Developer Studio Interface.

 

TimP
Black Belt
145 Views

You haven't said how previous posts on this subject (mainly on the MKL forum) fall short of answering your question. 

You would need to link the mkl_sequential library as there is no support for parallel without OpenMP or TBB parallel dll.  This may not be evident by looking at the link advisor.
 

Gabriel_Toro
Beginner
145 Views

Thanks to Tim P. for the response. I looked through the MKL forum but I did not find any guidance on how to link statically using the Developer Studio and Windows. BTW, I already decided to go with the sequential option because I suspected it was easier.

Reply