crypto library problem

crypto library problem

I've gotten the crypto library installed and have included ippcp.h but when I do a compile I get the following link error:

LNK2019: unresolved external symbol _ippsMD5MessageDigest@12

Did the installation not work? Do I have to check a box somewhere in a menu? Do I have to manually point to the library file?

8 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.


Have you made sure you have checked the "Use IPP" box under Project-> Intel Parallel Composer -> Select Build Components


I was looking for that switch but couldn't find it. Solved that problem.

I still can't get it to compile in release mode because of the following messages:

LNK2019: unresolved external symbol _ippsMD5MessageDigest@12
LNK2019: unresolved external symbol ___intel_sse2_strlen
LNK2019: unresolved external symbol ___intel_new_proc_init

Why does it behave differently for debug vs. release?

Some performance numbers for the debug version (I would expect the release version to be faster):

Processed 10,000,000 values in 63.727951 seconds (156,917 per second) - Windows OS MD5 calls
Processed 10,000,000 values in 26.571170 seconds (376,348 per second) - MD5 reference source compiled
Processed 10,000,000 values in 9.673884 seconds (1,033,711 per second) - Intel IPP Crypto library calls

Also note that the IPP crypto calls do not take advantage of multiple cores (perhaps you should run them through Cilk).

Hi Jay,

Let me touch base with IPP folks and one of them should respond to you soon. Appreciate your patience till then.


_ippsMD5MessageDigest@12 : should be satisfied by linking with the crypto file. Are you making calls to other crypto functions and this is the only one that is not being found? Or is this the only crypto function you are calling from your test app?

___intel_sse2_strlen : is located in the Intel compiler's runtime support functions. Perhaps the link list is not properly configured toincludethinks like libirc.lib?Are you using the Intel compiler to create your application?

___intel_new_proc_init : is also located in the static runtime library for the compiler and in the static version of the OpenMP library. Are you linking with the dynamic IPP libraries or the static IPP libraries?

It is not 100% clear to me what is going on here. Can you go into the solution/project properties and copy the compiler and linker command lines?

ippsMD5MessageDigest is the only crypto library routine I'm calling.

The application was written orginally for VS which it compiles cleanly in both debug and release modes. The IPP extensions compile in debug but give the above errors in release mode. Both have the check box for the IPP checked and I do not have the static libraries installed. I'm not using OpenMP at all. I didn't add or delete anything to the include or libary settings so I would think the complier had everything correct since it works in 3 out of 4 configurations (MS debug / release, Intel debug, not Intel release).

For the release build here are the complier command line within the IDE

/c /O2 /Ob1 /I "C:\Program Files\Intel\Parallel Studio 2011\Composer\ipp\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_IPP_PARALLEL_DYNAMIC" /D "_VC80_UPGRADE=0x0600" /D "_MBCS" /GF /EHsc /MD /GS /Gy /fp:fast /Yu"StdAfx.h" /Fp".\Release/MD5test.pch" /Fo".\Release/" /W3 /nologo

and the linker command line within the IDE

msvcrt.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /OUT:".\Release/MD5test.exe" /INCREMENTAL:NO /nologo /LIBPATH:"C:\Program Files\Intel\Parallel Studio 2011\Composer\ipp\lib\ia32" /MANIFEST /MANIFESTFILE:".\Release\MD5test.exe.intermediate.manifest" /NODEFAULTLIB /TLBID:1 /SUBSYSTEM:CONSOLE /IMPLIB:"C:\Documents and Settings\Jay Dowling\My Documents\class\MD5test\Release\MD5test.lib" /MACHINE:X86

Leave a Comment

Please sign in to add a comment. Not a member? Join today