Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
New Contributor I
13 Views

Static linking with IPP 8.2 (threaded)

Hi all!

I have a data processing DLL, that uses IPP 8.2.

I use static linking.

When I use single-threaded version of IPP LIB files everything is OK,
but when I try to use multi-threaded version of IPP LIB files at first VS2010 requires svml_disp.lib, 
when I add svml_lib to project, vs2010 requires libirc.lib,
when I add libirc.lib, vs2010 says about unresolved externals, connected with OpenMP,
and finally when I add to vs2010 libiomp5md.lib everything is compiled successfully.

But...VS2010 debugger says that libiomp5md.dll has been loaded.

So, final DLL will require some additional DLL (libiomp5md.dll).

My question: is it possible to link IPP completely static (without libiomp5md.dll load) ?

Best regards,
Roman

0 Kudos
2 Replies
Highlighted
Employee
13 Views

Hi Roman, 

Intel IPP uses the OpenMP for the internal threading. The static version of the OpenMP library is deprecated from Intel Compiler at Windows.  If the code is using the threaded IPP function, it needs to depend on the  libiomp5md.dll. 

Thanks,
Chao

0 Kudos
Highlighted
New Contributor I
13 Views

Chao Y (Intel) wrote:

Hi Roman, 

Intel IPP uses the OpenMP for the internal threading. The static version of the OpenMP library is deprecated from Intel Compiler at Windows.  If the code is using the threaded IPP function, it needs to depend on the  libiomp5md.dll. 

Thanks,
Chao

Hi Chao,

Thank you for reply.
I used static linking to avoid "DLL hell problem". In theory I can set a folder to load IPP DLLs via LoadLibrary function (in case of dynamic linking).But IPP DLLs will load libiomp5md.dll. And if some other application has loaded  older version of libiomp5md.dll already, I will have a version conflict (conflict of two versions of  libiomp5md.dll).

Is it possible to set in some IPP settings the folder to load proper version of  libiomp5md.dll?

Best regards,
Roman

 

0 Kudos