Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

libifportMD.dll Version Problem

aaron_smith
Beginner
960 Views
I have a mixed language (c++ and fortran) that compiles and runs perfectly on my computer. I have just added a Setup and Deployment Project to my solution and am having a small issue on the computers that install my program. According to the detected dependencies, the code is dependent on libifportMD.dll and includes it in the installation. When the code is launched on a computer that has my code installed, nothing happens. I ran the dependency walker on the code on the user's computer and the last errors that occurred before the crash are:

DllMain(0x002F0000,DLL_PROCESS_ATTACH,0x1A1DFD30) in "LIBIFPORTMD.DLL" returned 0 (0x0) by thread 1.
Second change exception 0xC0000253 (Dll Initialization Failed) occurred in "NTDLL.DLL" at address 0x7C966668 by thread 1.

I found that if I replace libifportMD.dll with a older version, the code works correctly. The version on libifportMD.dll that is installed as part of the installation package is 9.1.101.101. If I replace the dll with version 8.1.14.0, the code works. I am not sure exactly why this was necassary for the code to work. Am I doing something wrong here? Any help is much appreciated.

Compiler: Microsoft VS 2005
Intel Fortran Version: 9.1.3192.2005
0 Kudos
2 Replies
aaron_smith
Beginner
960 Views
Quoting - aaron.smith
I have a mixed language (c++ and fortran) that compiles and runs perfectly on my computer. I have just added a Setup and Deployment Project to my solution and am having a small issue on the computers that install my program. According to the detected dependencies, the code is dependent on libifportMD.dll and includes it in the installation. When the code is launched on a computer that has my code installed, nothing happens. I ran the dependency walker on the code on the user's computer and the last errors that occurred before the crash are:

DllMain(0x002F0000,DLL_PROCESS_ATTACH,0x1A1DFD30) in "LIBIFPORTMD.DLL" returned 0 (0x0) by thread 1.
Second change exception 0xC0000253 (Dll Initialization Failed) occurred in "NTDLL.DLL" at address 0x7C966668 by thread 1.

I found that if I replace libifportMD.dll with a older version, the code works correctly. The version on libifportMD.dll that is installed as part of the installation package is 9.1.101.101. If I replace the dll with version 8.1.14.0, the code works. I am not sure exactly why this was necassary for the code to work. Am I doing something wrong here? Any help is much appreciated.

Compiler: Microsoft VS 2005
Intel Fortran Version: 9.1.3192.2005

Nevermind, I found my problem. Unfortunately, this is not the first time this has happened. The installer was grabbing dlls from another program, MATLAB. For some reason, the compiler sometimes thinks that the MATLAB dlls are what it wants for libifcoremd.dll and libmmd.dll. The dlls that are installed with MATLAB are not compatible with libifportMD.dll version 9.1.101.101.
0 Kudos
Steven_L_Intel1
Employee
960 Views
The compiler is not involved in this. It's the PATH environment variable that Windows uses to locate DLLs (after trying some standard places.) If the same named DLL is in two or more locations, the first one found in PATH is used. When the compiler installs, it adds its folder to PATH, but later installs may do something different.
0 Kudos
Reply