I am trying to use the Intel IPP library to perform FFTs in a plugin for another host application. I'm running into trouble because it appears that simply linking and calling IPP functions in my plugin (note that these function calls are never reached)causes the host application to crash, seemingly in an OpenMP DLL. I think that IPP must use OpenMP under the hood, and the host application uses a different version, or something.
I don't want any multithreading at all from IPP, I'm handling that myself at a higher level. I also want to use the statically linked libraries to avoid this problem.
However, the documentation says to link to 'ippsemerged.lib' for the static libraries with dispatch. I can't find this library anywhere in my source tree? So far I'm just using the trial version of IPP, do I need to purchase the library to get this version of the library?
In general, what I'm attempting to accomplish is using the static libs with dispatch, and I don't want any multithreading by IPP as I'm calling the IPP functions on many threads at a higher level. Any help with accomplishing this would be much appreciated!
I was able to solve this by linking to the _l.lib libraries. IMO, the documentation is not very clear about this, and I've seen the *merged.lib libs referenced several more times since asking the question, and I still haven't been able to find these libraries anywhere in my IPP package...
In IPP 7.0.x library naming changed (in comparison to 6.x and earlier) - "merged" suffixremoved from libraries names and two new suffixesused to distinguish non-threaded static - "_l" and threaded static - "_t" libraries.