- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Steve,
Is the PATH the only guide for applications to dll's? If your application is dependent on a dll there must be a path included in PATH environment variable? When we develop OpeneMP 32 and 64 bit applications we need to locate the libiomp5md.dll. As far as I can see the 32 and 64 versions of this dll are different, but share the same name. If we have both 32 and 64 bit paths to libimop5md.dll in our PATH will there not be a confusion due to the identical name? Will the application automatically choose the correct version?
Thanks in advance for a reply!
Magne Rudshaug
Norway
Link Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, automatic choice between the 32- and 64-bit dlls should work. The search path includes the directory of the .exe, as well as any directories you add specifically to PATH (as the ifortvars.bat scripts do).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - tim18
Yes, automatic choice between the 32- and 64-bit dlls should work. The search path includes the directory of the .exe, as well as any directories you add specifically to PATH (as the ifortvars.bat scripts do).
Hi Magne,
Since your post was directed to Steve, just wanted to let you know he is out for a couple of days. Tim is correct in his answer though.
Wendy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Tim,
Does this mean that we need to have path's to both the 32 bit and 64 bit version of the libiomp5md dll in our PATH environment variable to have both type executables run directly (ctrl+F5) from Visual Studio? I'm currently struggeling with this on my Window 2008 Server installation. I get a "Can not locate libiomp5md.dll" when I try to run my exe file by doing ctrl+F5.
Magne
Quoting - magne.rudshaug@ife.no
Hi Steve,
Is the PATH the only guide for applications to dll's? If your application is dependent on a dll there must be a path included in PATH environment variable? When we develop OpeneMP 32 and 64 bit applications we need to locate the libiomp5md.dll. As far as I can see the 32 and 64 versions of this dll are different, but share the same name. If we have both 32 and 64 bit paths to libimop5md.dll in our PATH will there not be a confusion due to the identical name? Will the application automatically choose the correct version?
Thanks in advance for a reply!
Magne Rudshaug
Norway
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If I understand the question, yes. Both the 32- and 64-bit OpenMP libraries would need to be on PATH, so that you could run either 32- or 64-bit OpenMP linked .exe without modifying the setup. I think there was a post by Steve Lionel some time back about the configuration of compiler installation on 64-bit Windows so that it should be this way automatically, where both 32- and 64-bit compilers are present.
The basic 64-bit Windows configuration always has both 32- and 64-bit versions of the same named dlls on base path. It is possible, although not recommended, with sufficient privilege, to put your own dlls in the corresponding windows system dll folders. Among reasons this would not be recommended is that you must remember to remove those dlls when you update your application, particularly if built with a newer compiler.
I have to say I don't run into this in practice, as generally 64-bit OpenMP is sufficiently superior that a 32-bit OpenMP .exe would not be used where there is a choice. Also, the static link is often used when a .exe is built to be run outside the compiler installation. The vociferous warning against static OpenMP link is meant only to avoid some of the accidental ways of linking multiple copies of OpenMP.
The basic 64-bit Windows configuration always has both 32- and 64-bit versions of the same named dlls on base path. It is possible, although not recommended, with sufficient privilege, to put your own dlls in the corresponding windows system dll folders. Among reasons this would not be recommended is that you must remember to remove those dlls when you update your application, particularly if built with a newer compiler.
I have to say I don't run into this in practice, as generally 64-bit OpenMP is sufficiently superior that a 32-bit OpenMP .exe would not be used where there is a choice. Also, the static link is often used when a .exe is built to be run outside the compiler installation. The vociferous warning against static OpenMP link is meant only to avoid some of the accidental ways of linking multiple copies of OpenMP.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Tim,
Thanks for an exellent reply!
Magne
Quoting - tim18
If I understand the question, yes. Both the 32- and 64-bit OpenMP libraries would need to be on PATH, so that you could run either 32- or 64-bit OpenMP linked .exe without modifying the setup. I think there was a post by Steve Lionel some time back about the configuration of compiler installation on 64-bit Windows so that it should be this way automatically, where both 32- and 64-bit compilers are present.
The basic 64-bit Windows configuration always has both 32- and 64-bit versions of the same named dlls on base path. It is possible, although not recommended, with sufficient privilege, to put your own dlls in the corresponding windows system dll folders. Among reasons this would not be recommended is that you must remember to remove those dlls when you update your application, particularly if built with a newer compiler.
I have to say I don't run into this in practice, as generally 64-bit OpenMP is sufficiently superior that a 32-bit OpenMP .exe would not be used where there is a choice. Also, the static link is often used when a .exe is built to be run outside the compiler installation. The vociferous warning against static OpenMP link is meant only to avoid some of the accidental ways of linking multiple copies of OpenMP.
The basic 64-bit Windows configuration always has both 32- and 64-bit versions of the same named dlls on base path. It is possible, although not recommended, with sufficient privilege, to put your own dlls in the corresponding windows system dll folders. Among reasons this would not be recommended is that you must remember to remove those dlls when you update your application, particularly if built with a newer compiler.
I have to say I don't run into this in practice, as generally 64-bit OpenMP is sufficiently superior that a 32-bit OpenMP .exe would not be used where there is a choice. Also, the static link is often used when a .exe is built to be run outside the compiler installation. The vociferous warning against static OpenMP link is meant only to avoid some of the accidental ways of linking multiple copies of OpenMP.

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