Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Ian_A_
Beginner
92 Views

Win32 / x64 linking problem

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?

0 Kudos
3 Replies
Ian_A_
Beginner
92 Views

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.)
mecej4
Black Belt
92 Views

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.
SergeyKostrov
Valued Contributor II
92 Views

>>...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