C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\redist\ia32_win\compilerlibiomp5md.dll update results in the error "The application was unable to start correctly (0x00000007b)"
Reverting to an older update of this dll from 2018 works without issue.
Note that I am using a fortran DLL call from Microsoft C main program detailed below:
Microsoft Visual Studio Community 2015
Version 14.0.25431.01 Update 3
Microsoft .NET Framework
Installed Version: Community
Visual C++ 2015 00322-20000-00000-AA272
Microsoft Visual C++ 2015
Intel® Parallel Studio XE 2019 Update 4 Composer Edition for Fortran Windows* Package ID: w_comp_lib_2019.4.228
Intel® Parallel Studio XE 2019 Update 4 Composer Edition for Fortran Windows* Integration for Microsoft Visual Studio* 2015, Version 19.0.0052.14, Copyright © 2002-2019 Intel Corporation. All rights reserved.
>>C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\redist\ia32_win\compilerlibiomp5md.dll
There appears to be a \ missing after compiler
There may be an issue with the path
*** also, on your system the correct folder for lipiomp5md.dll should be:
C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.4.228\windows\compiler\lib\ia32_win\libiomp5md.dll
IOW not from the redist folder
My guess is you installed the development system and installed the redistributables and the path to the redistributables (ia32_win\compiler) is missing the trailing \
Thanks for you response.
The missing \ was just a typing error on my part so not a concern.
Since libiomp5md.dll is not distributed as part of a standard windows installation I need to include it with my software when shipped to clients.
The reason I use libiomp5md.dll from the redist folder is because there is no dll in the lib folder. The lib folder only has libiomp5md.lib
As I said above, if I include libiomp5md.dll (18/04/2019 - 1.47MB) from the redist folder (part of 2019.4.228) my application gives the (0x00000007b) error on startup.
However, if I include libiomp5md.dll (11/02/2018 - 1.57MB) from a previous compiler installation, my application runs perfectly.
Something seems to be wrong with the libiomp5md.dll distributed with 2019.4.228
>>Since libiomp5md.dll is not distributed as part of a standard windows installation I need to include it with my software when shipped to clients.
You might consider using the Intel Redistributables itself as opposed to individual file(s). Installation of the Redistributables also modifies config.sys environment variables. If you still wish to include only individual files from the Redistributables, I suggest using a "clean" system, collect the environment variables into a file (SET > ENVPRIOR.TXT), then install the Redistributables, collect environment again (SET > ENVINTEL.TXT) and perform a WinDiff. Your installation script can then be modified to take account of any requirements.
Additional note, at one of the version increments of IVF, at, or just after, implementation of OpenMP 4.0 features (that with TASK), the Fortran/omp runtime system also referenced the Intel TBB Scalable Allocator. This is likely tbbmalloc.dll, but that may have an additional dependency in the tbb folder.
To identify program dependencies you might try one of these utilities: https://www.raymond.cc/blog/check-what-dll-or-ocx-dependency-files-is-needed-for-a-software/
Thanks for you reply again, however I do not think that is the problem.
If I run my application with a copy of libiomp5md.dll in the same folder I get the message "The code execution cannot proceed because libiomp5md.dll was not found".
If I run my application with the copy of libiomp5md.dll (18/04/2019 - 1.47MB) distributed with 2019.4.228, I get the message "The application was unable to start correctly (0x00000007b)".
If I run my application with the copy of libiomp5md.dll (11/02/2018 - 1.57MB), there are not messages and may application runs as expected.
I still believe that something is wrong with the libiomp5md.dll distributed with 2019.4.228
Best Regards, Terry Wiles
Above I meant to say:
If I run my application without a copy of libiomp5md.dll in the same folder I get the message "The code execution cannot proceed because libiomp5md.dll was not found".
Sorry for the miss-wording.
I suspect that the problems are caused by inadvertently (or indiscriminately) mixing 32-bit and 64-bit DLLs. The 1.47 MB DLL is probably a 32-bit DLL. If your application is 64-bit, and the search path leads only to the 32-bit DLL (see https://docs.microsoft.com/en-us/windows/desktop/Dlls/dynamic-link-library-search-order#standard-search-order-for-desktop-applications ), there will be a problem.
A number of tools, including the 7zip utility, can tell whether a given DLL is 32-bit or 64-bit. See https://www.raymond.cc/blog/determine-application-compiled-32-64-bit/ for alternatives.
>>I suspect that the problems are caused by inadvertently (or indiscriminately) mixing 32-bit and 64-bit DLLs.
.OR. omitting an additional path to the 64-bit DLLs.
.OR. failing to register the DLL
(this link may be of interest https://stackoverflow.com/questions/4897685/how-do-i-register-a-dll-file-on-windows-7-64-bit)