- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to compile a C++ DLL for both Win32 and x64 platforms. Both DLLs are dependent on libmmd.dll and libiomp5md.dll .
According to Dependency Walker, the Win32 DLL is dependent on the x64 DLLs in..\redist\intel64\compiler.
These should presumably be the Win32 DLLS in ..\redist\ia32\compiler, but I cannot figure out how to tell Visual Studio 2010 to link to them. (The Windows environment variable "path" includes both directories.) Any suggestions?
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I may have answered my own question -- using the VC++ linker command /VERBOSE:Lib showed that the linker searches the ..\redist\ia32\compiler directory only, so presumably the correct DLLs are being accessed. The problem is presumably with Dependency Walker. (There are Win32 and x64 versions of this program, and I used the appropriate version for each DLL.)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dependency Walker (and other similar utilities) probably depend on the correct DLL being found first on the %PATH% chain before another DLL with the same name (probably different architecture than the subject .EXE). This is probably more of an issue with DLLs that are not in the Windows system (Windows\System32, Windows\Syswow64) directories. Check your PATH, correct it if necessary, and retry with Dependency Walker.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
>>...Both DLLs are dependent on libmmd.dll and libiomp5md.dll...
I suggested a long time ago a better naming rule, for example, for Debug configuration, like:
[ for 32-bit applications ]
libmmd.dll ( libmmd.lib )
libiomp5md.dll ( libiomp5md.lib )
or
libmm32d.dll ( libmm32d.lib )
libiomp5m32d.dll ( libiomp5m32d.lib )
[ for 64-bit applications ]
libmm64d.dll ( libmm64d.lib )
libiomp5m64d.dll ( libiomp5m64d.lib )
The rule is very simple and I regret to see that it is not used in many Intel software products.

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