Statically linking MKL libary and IPP library in same project

Statically linking MKL libary and IPP library in same project

 

Hi,   I am developing an application which uses both IPP and MKL. Till now i was using MKL ( mkl_rt.lib)and IPP (ippcorel.lib ippsemerged.lib ippsmerged.lib ippvmemerged.lib ippvmmerged.lib ippsremerged.lib ippsrmerged.lib) for developing appliation. Now I have to move to static linking of the project as per document (http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_userguide_win/mkl_userguide_win.pdf  Page 29) i am using  IA-32 architecture, static linking :: mkl_intel_c.lib mkl_intel_ thread.lib mkl_core.lib libiomp5md.lib (for MKL.)   IPP : ippcorel.lib ippsemerged.lib ippsmerged.lib ippvmemerged.lib ippvmmerged.lib ippsremerged.lib ippsrmerged.lib   If I try to build this project then i get >65K  redifition  warnings and the build fails. Kindly let me know 

how to build the a project with both IPP and MKL staticatlly linked and used?      

 Regards   Rohit

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

Hi Rohit,
Could you provide an example of warnings and errors which cause build fail?
Regards,
Sergey

Regards,
Sergey

HI,
i am using IA-32 architecture, static linking :: mkl_intel_c.lib mkl_intel_ thread.lib mkl_core.lib,mkl_lapack95.lib,mkl_blas95.lib (for MKL.)

IPP : ipps_l.lib ippcore_l.lib ippvm_l.lib these are from the ippsremerged.lib ippsrmerged.lib 6.1 as the SR lib are discontinued in 7.0.

If I try to build this project then i get >65K redifition warnings and the build fails. Kindly let me know how to build the a project with both IPP and MKL staticatlly linked and used.

Ps: I have used the option of additional dependent libraries in librarian settings of my application project to include the IPP and MKL

1>ippsmerged.lib(psfftssmallca_split_px_ipps_cFFT_1_scale_32fc.obj) : warning LNK4221: no public symbols found; archive member will be inaccessible

1>ippsmerged.lib(psfftssmallca_split_px_ipps_cFFT_1_32fc.obj) : warning LNK4006: _px_ipps_cFFT_1_32fc already defined in mkl_core.lib(psfftssmallca_split_px_ipps_cFFT_1_32fc.obj); second definition ignored

1>ippsmerged.lib(psfftssmallca_split_px_ipps_cFFT_1_32fc.obj) : warning LNK4221: no public symbols found; archive member will be inaccessible

1>ippsmerged.lib(psfftsrecca_split_px_ipps_initTabTwdRealRec_32f.obj) : warning LNK4006: _px_ipps_initTabTwdRealRec_32f already defined in mkl_core.lib(psfftsrecca_split_px_ipps_initTabTwdRealRec_32f.obj); second definition ignored

1>ippsmerged.lib(psfftsrecca_split_px_ipps_initTabTwdRealRec_32f.obj) : warning LNK4221: no public symbols found; archive member will be inaccessible

1>LINK : fatal error LNK1189: library limit of 65535 objects exceeded

We are using IPP version 7.0 and MKL verion 10.3 update 11.

Regards
Rohit

Hi Rohit,
Ooops!:) Are you building a DLL out of all this stuff?
Sergey

Regards,
Sergey

Hi Rohit,

MKL uses IPP internally but different version. So you can see such warnings which are just warnings and were ignored.
But LINK : fatal error LNK1189: library limit of 65535 objects exceeded :(

Thanks,
-- Victor

HI,

No, We are cerating Myapplication.lib. We are using both IPP and MKL. Tilll know we were using IPP as static and MKL as dynamic linkining to create the Myapplication.lib. and providing mkl dll. Now the product is in shape where do'nt want to create a mess with different versions of MKL. So creating a static lib, Kindly let us know what's the best way to get it done.As we are going cricles in using IPP (7.1)and MKL(10.3).. We are suppose to use Intel IPP/MKL to ease our development but now its a big issue for us to resolve.

Kindly let us know with a how to create a project that can have both IPP and MKL and genrates a static library.
regards
Rohit

Hi Intel Folks,

Can you help resolving this issue? We would like to build a static lib of our application which uses both MKL and IPP static libraries.

Regards
Rohit

Hi Rohit,

If you trying to create some static library from static IPP and static MKL libraries then consistency of IPP and MKL version is required.
And in your previuos post there was LINK error message about some limitations to do so: library limit of 65535 objects exceeded
Therefore, it needs to consider another approach instead of creating fully static library with MKL and IPP. Why do need static linking?
I'd suggest using two custom libraies: MKL and IPP presented as two different dynamic libraries. They have smaller size than product libraries.

Thanks,
-- Victor

Leave a Comment

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