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

Portability of Executable files

Nan_Deng
Beginner
813 Views
We developed some applications and compiled with Visual Fortran v11 to be used on multiple workstations. However, I found the compiled executables are no completely portable - I must copy one library file named libiomp5md.dll to the searchable path to make the executable to run. Did I miss something in downloading the compiler or I have used wrong flags in compilation? Any help is greatly appreciated.
0 Kudos
4 Replies
anthonyrichards
New Contributor III
813 Views
I believe that he first 'd' in 'libiomp5md.dll indicates that you have dependence on a debug library. So you have to recompile all your files making sure that you have selected release configuration.
0 Kudos
Steven_L_Intel1
Employee
813 Views
No, that would be "mdd".

By default, the OpenMP library is linked as a DLL library. You can add /openmp-link:static to specify a static library, but this option may go away in a future release.

The alternative is to install the compiler redistributables on the target system.
0 Kudos
Jugoslav_Dujic
Valued Contributor II
813 Views
Out of curiosity, what does that final "d" in libiomp5md stands for? What about libifcoremd? I find it terribly confusing with Debug libraries.
0 Kudos
Steven_L_Intel1
Employee
813 Views
This is a Microsoft convention that matches the Visual C++ switches used to select libraries.

md = /MD = DLL
mt = /MT = Multithreaded static library

However, debug DLL libraries don't usually follow this. For example, msvcrt is the regular DLL whereas msvcrtd is the debug DLL. I guess if it ends specifically in "md" then it's a normal DLL. If the ending is something else followed by d, then it's probably a debug dll.
0 Kudos
Reply