- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Out of curiosity, what does that final "d" in libiomp5md stands for? What about libifcoremd? I find it terribly confusing with Debug libraries.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page