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

libifcoremd.dll libmmd.dll Missing Error

Alastair_M_1
Beginner
2,650 Views

Hello,

I recently installed Parallel Studio XE for Windows and Visual Studio and have had no trouble compiling and executing code. That is until I restarted my computer. Now, code that worked yesterday no longer works apparently due to two missing DLLs. I have found running the Parallel Studio installer again and choosing repair fixes the error until I restart again.

Looking through results here and elsewhere online it seems that often this boils down to a PATH issue. I have checked that my PATH variable contains what I think are the correct links to the DLLs but I still get this error, even after restarting my computer or logging in. I have found that the DLLs exist in a number of different locations for other programs. Some of these are appended to my PATH (mainly for Python) but I don't know if that will have an effect.

Thanks

Alastair

0 Kudos
1 Solution
mecej4
Honored Contributor III
2,650 Views

There can be two compiler environments, one producing 32-bit EXEs and the other 64-bit EXEs. These use 32- and 64-bit RTL DLLs, which may have the same names, eg., a 32-bit libmmd.dll and a 64-bit libmmd.dll. If the PATH leads to a mismatched version, e.g., your EXE is 64-bit but only the 32-bit DLL is found, you have a problem.

You can investigate the problem by checking that the DLLs found along PATH have the correct bitness, using Dumpbin or by selecting the DLL in the Windows Explorer and checking its properties using a right-click.

View solution in original post

12 Replies
mecej4
Honored Contributor III
2,651 Views

There can be two compiler environments, one producing 32-bit EXEs and the other 64-bit EXEs. These use 32- and 64-bit RTL DLLs, which may have the same names, eg., a 32-bit libmmd.dll and a 64-bit libmmd.dll. If the PATH leads to a mismatched version, e.g., your EXE is 64-bit but only the 32-bit DLL is found, you have a problem.

You can investigate the problem by checking that the DLLs found along PATH have the correct bitness, using Dumpbin or by selecting the DLL in the Windows Explorer and checking its properties using a right-click.

Bruce_Weaver
Beginner
788 Views

I don't see how to tell them apart.  Properties doesn't seem to tell and Dumpbin isn't recognized by powershell (I have not investigated further yet).  IF you can tell me the size difference of the two versions, that would be an easy way to tell the difference.  Or where they are normally found (I found one in WOW).

0 Kudos
jimdempseyatthecove
Honored Contributor III
763 Views

FWIW, on Windows, the folder System32 is the folder containing (most of) the installed Windows system files.

IOW, if you are running on a 32-bit Window system, these are 32-bit files...

*** if you are running on a 64-bit Windows system, System32 contains the 64-bit files

*** and if you are running on a 64-bit Windows system, there is an additional Windows folder named SysWOW (Windows On Windows) that contain the 32-bit files.

 

Jim Dempsey

0 Kudos
Bruce_Weaver
Beginner
714 Views

I seem to have both on my computer.   For example I have libifcoremdd.dll in sizes 1.22MB and 1.33MB in different parts of the oneAPI directories!  I found another on the web that was 1.14MB!.  I found some of the missing DLLs in sysWOW64, which I assume are 64 bit.  I found none in System32.  Where is the compiler and/or the VTune going to be looking for them?

Jim: I gather that you got the recent VTune working?  w/o messing up the fortran compiler?

0 Kudos
andrew_4619
Honored Contributor II
697 Views

FWIW libifcoremdd.dll is a debug version (dd is the clue) and should only be found within the VS environment not in system32. Debug code does not run outside the VS environment. 

0 Kudos
Steve_Lionel
Honored Contributor III
666 Views

dumpbin is provided by Visual Studio and is available in a Fortran command prompt window. (You can get this in Powershell too by invoking PS after starting the command prompt window. I have a post somewhere here on using the Fortran/VC tools from PS.

0 Kudos
Bruce_Weaver
Beginner
540 Views

OK.  There are three versions of libiomp5md in OneAPI:   ~\oneAPI\2024.1: (32-bit, 763KB); ~\oneAPI\vtune\2024.1:(32-bit, 763KB); ~oneAPI\compiler\2024.1\bin32:(32-bit, 1972KB); and ~oneAPI\compiler\2024.1\bin:(64-bit, 1219KB).

 

I'm reluctant deleting the 32-bit versions in ~\oneAPI\vtune\2024.1 and installing the 64-bit version because I don't know if some other part of Vtune needs the 32-bit version.  Apparently it is not looking in ~\oneAPI\vtune\2024.1, where the 64-bit version is.  Where is it looking? Where is the safest place to put the 64-bit versions?

Note that there is at least one more DLL it can't find ( libmmd.dll).  I am using the debug version since that seemed to be the easiest way to get the link to the source code in earlier version of Vtune.

I identified the versions by just looking in the DLLs for the code ('L' or 'dt') following the first instance of "PE".

thanks.

0 Kudos
andrew_4619
Honored Contributor II
532 Views

So what does PATH look like? Which of those folders is first in PATH, on my system the first itme is PATH=C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\redist\intel64_win\compiler;.......

 

You should not be looking to move DLLs that is the road to DLL Hell,  you should fix the install if that is the issue.

0 Kudos
Steve_Lionel
Honored Contributor III
459 Views

Do not delete 32 or 64 bit versions, nor replace them. Windows is smart enough to skip 32-bit DLLs when running a 64-bit application.

In the recent past, the Intel installer failed to update PATH with the correct location of the DLLs, when the folder layout was changed. I thought that had been fixed in recent releases. PATH should contain the following:

C:\Program Files (x86)\Intel\oneAPI\compiler\latest\bin
C:\Program Files (x86)\Intel\oneAPI\compiler\latest\bin32

(I don't have Vtune installed, so won't comment on that.)

0 Kudos
Bruce_Weaver
Beginner
327 Views

Yes.  Fixing the path got it to work and made a lot of sense.

AND set me off to the next VTune issue:

Data collection is completed successfully

May 21 2024 12:56:13 The result file 'E:\SASi\SASi2.8w\SASi2.8\VTune Profiler Results\SASi2.8\r022ps\r022ps.vtune' is successfully created and added to the project .

 
 

Finalization completed with warnings

May 21 2024 12:56:18 Result finalization has completed with warnings that may affect the representation of the analysis data. Please see details below.

Cannot locate debugging information for file `C:\Program Files (x86)\Intel\oneAPI\vtune\2024.1\bin64\runtime\ittnotify_collector.dll'.
Cannot locate debugging information for file `C:\Windows\SYSTEM32\ntdll.dll'.
Cannot locate debugging information for file `C:\Windows\System32\KERNEL32.DLL'.
Cannot locate debugging information for file `C:\Program Files (x86)\Intel\oneAPI\compiler\latest\bin\libiomp5md.dll'.
 
This seems to be more system stuff.  If I switch to Release mode, it can't find the MKL DLL, although it does if I just compile.  ARG!
0 Kudos
Steve_Lionel
Honored Contributor III
291 Views

None of those warnings are important.

0 Kudos
Bruce_Weaver
Beginner
289 Views

Ok, so the problem with it not executing after that is something else.  In the past, Vtunes had issues looking for files in directories not the same as where the compiler looked.

0 Kudos
Reply