Debug version for linking

Debug version for linking

My application has to build in both debug and release modes and I want to link Intel IPP libs statically. Are the debug libs available ?

Even in case of dlls, are the debug version of Intel IPP libraries available. I am aware that debugging in release mode can be enabled but I would like to link my application with debug CRT.

 

 

 

6 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

Hi Madhan,

The IPP libraries are available in the only form - release libs. You can link them to both kind of projects - debug and release. Thus, you can have debug information in your code and call release mode libraries from it. The form of libraries, which are called from debug mode code, doesn't matter.

Regards, Sergey

Hi Sergey,

I think the variant of C run time library used to create the library (as specified by flags /MT, /MD, /MTd, /MDd) does make a difference. 

The goal is to use the same C run time library throughout the application. This isn't met when IPP dlls are compiled as /MD in release mode and I am creating the exe in debug mode using /MDd. And I would prefer to maintain a consistent build environment where there is no mix of the CRTs with debug being true debug and not release mode with debugging enabled. 

As a simple test, you can create a static lib in debug (using /MTd) and try to link it statically to an exe in release (which uses /MT), you will get a linker warning "LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library".

Please check this and this

Regards,
Madhan

Best Reply

Hi Madhan, 

We have such problem discussed in the forum.  I find one related 

like https://software.intel.com/en-us/forums/topic/293778

In common MSVC environment,user should be free to choose /MD or/MT option, because we try to remove such dependency, the current IPP static (both single and threaded) libraries do not include any link MSVC runtime library directly. 

So generally, as sergey mentioned, we think it doesn't matter with /Md or /MT option with IPP static library. 

The example you mentioned looks a warning.  Do you happen to get link error when link IPP static library in your project? 

By the way, I'm investigating your issue in premier.intel.com (IPS) 6000057954,  Could you please update some background messages in IPS  or here if it is convenient for you. 

Best Regards,
Ying 

Hi Ying,

By choosing ipp*_t.lib versions I was able to link the libs in /MD and /MT variants. The intel libs are independent of the CRT. Thanks for the answer.

Hey guys,

I had problems with H.264 decoder from 7.0.7 samples today. I adjusted some code and refactored some of the functions that used H.264 decoder and suddenly in Debug mode decoder would crash on Init().

After hours of trying everything I realized that the h264_dec.lib I had in my project was the release lib and it was using the Release runtime. I was running /MDd and I was linking to debug msvcrtd.dll. Obviously these two conflicted somehow and some of the STL calls would just crash (in the very Init() function).

After rebuilding codecs for debug the problems disappeared and now everything works fine.

I really don't understand how it used to work with the release libs in debug for years and now suddenly it decided to stop working. Fortunately it's solved.

Just a heads up for future generations :)

 

Accedere per lasciare un commento.