Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6997 Discussions

After making static linking using \MT my Project still have dependency on "libiomp5md.dll"


I am using IntelMKL in my project. I use 'PARDISO' API from IntelMKL.For parallel processing, I have made changes in the project settings as follows,
    "Configuration Properties => Intel Performance Libraries" 1)UseIntelMKL => Parallel  and 2)UseILP64Interfaces => Yes

It is desirable that my project DLL should not have any external DLL dependency because of our internal unavoidable reasons (i.e. we want complete static linking). So for static linking, I have switched the compiler to "/MT" to use static multi-threaded runtime libs. Still my project DLL shows dependency on OpenMP DLL "libiomp5md.dll".

Please let me know which functions from libiomp5md.dll are referred in my project even though we just call 'PARDISO' function? Please guide me to link statically to 'libiomp5md.lib / libiomp5mt.lib'.

Thank you for all your help.

0 Kudos
1 Reply


It is true that the libiomp5md.dll is still in static library.  You may know MKL is threaded by OpenMP library, so all threaded functions in MKL will use the libiomp5md.ll. I recalled, there are formal explanation in previous edition of Intel Compiler documentation about why to remove the static OpenMP.  

But so far,  the link i can search: 
2.. Diagnostic 10323: use of -openmp and -static will link in the dynamic version of the OpenMP* library in a future release. Static OpenMP* libraries are deprecated.
If you have to, you may download one previous version which include mt version. But it may bring other unexpected problem as we haven't validated.  Again, we strongly recommend you to use the dynamic version of the OpenMP library instead of the static version.
Best Regards,


Note: The static OpenMP library is removed in Intel Parallel Studio 2011. 

0 Kudos