On a computer with IPP 4.0 and IPP 6.0 a program using IPP 4.0 is loading the ippcc.dll from IPP 6 which I don't understand. In the end OMP aborts with the problem described here: https://software.intel.com/en-us/articles/opm-abort-initializing-libguide40dll
Is this the result of any automated mechanism from the DLL dispatcher of IPP 4.0?
Any help is appreciated...
Please, make sure that IPP 4.0 DLL directory is first in the PATH environment variable. I.e.
set PATH=<ipp 4.0 bin path>;<ipp 6.0 bin path>;%PATH% or
export LD_LIBRARY_PATH=<ipp 4.0 bin path>:<ipp 6.0 bin path>:$LD_LIBRARY_PATH
The OS catches the first library it meets in the path.
Or, remove IPP 6.0 DLL path from those variables completely.
Thanks for the suggestion, currently from the loading order IPP 4 is found in Windows System path and should therefore have preference over the IPP6 which is found from the PATH variable.
Removing IPP6 from the path is no option.
Could it happen that (quote from MSDN):
What''s the Windows by the way?
It is Windows 7
I would like to understand how it comes, that the IPP 4 DLLs are leading to the load of ippcc.dll (introduced in IPP6, so in IPP4 no ippcc.dll was existing, from my understanding IPP4 doesn't contain any explicit reference to an ippcc.dll) I expect a general mechanism in the dispatcher of IPP4?
It seems the problem is in an application which use ippCC functionality. I guess you have 2 or more applications. One is used IPP 4.0, another one is used IPP 6.0. So the system paths must be setupped correctly (on IPP 4.0 in the first case and on IPP 6.0 in the second case).
IPP4 doesn't try to load ippcc.dll.
Your application (I don't know which one exact) is linked with ippcc.dll and other IPP DLLs. I guess the application is linked with IPP 6.0. So when the application is started it try to load all necessary DLLs. The path to IPP 6.0 DLLs must be the first in the PATH variable.
Try to setup PATH variable to IPP 6.0 at the first.