Intel® IPP - Library dependencies by domain

I want to build an application with the Intel® Integrated Performance Primitives (Intel® IPP). Which domain libraries do I need to link to?

Intel IPP is divided into groups of related functions. Each subdivision is called domain, and has its own header file, static libraries, dynamic libraries, and tests. The table below lists each domain's code, header and functional area.

The only way to know the exact dependencies for the Intel IPP functions called from your application is to link to the libraries. For example, if your application uses Color Conversion functions then you must link to ippcc.lib (Windows*) or (Linux*). After you link, if there are unresolved symbols to functions with the prefix ippi, this means you also need to link to ippi.lib (Windows) or (Linux). The ippcore library (ippcore.lib for Windows or for Linux) is required for all domains.

The file ipp.h includes Intel IPP header files with the exception of cryptography and generated functions. If you do not use cryptography and generated functions, include ipp.h in your application for forward compatibility. If you want to use cryptography or generated functions, you must directly include ippcp.h and ippgen.h in your application.

Library Dependencies by Domain


Domain Code

Depends on

Color Conversion


Core, VM, S, I

String Operations


Core, VM, S




Computer Vision


Core, VM, S, I

Data Compression


Core, VM, S

Image Processing


Core, VM, S

Signal Processing


Core, VM

Vector Math




The figure below represents the domain internal dependencies graph.



Please avoid starting any new projects with the deprecated domains.

For more complete information about compiler optimizations, see our Optimization Notice.



By the way, the 'ippsr' domain have been removed in v. 7.1 of IPP. Please update article and clarify what version of IPP the dependencies are valid for.

Just a clarification on the 'ipps' dependency: For v. 7.1, it is as given in the article, i.e. 'ipps' does depend on 'ippvm' (and 'ippcore'). Thus the old comment provided by Gennady where 'ipps' is stated as only depending on 'ippcore' is thus no longer correct. This had me confused for a moment so I wanted to highlight it for others.

This is a great category breakdown. You can verify this by looking into each DLL file with the PE Explorer app from and confirm the DLL description built into the .rsrc area listed for a DLL file. PE explorer also lists your import DLL list, so you can see if your DLL depends upon any other DLLs.
We needed to isolate only signal processing DLLs, and by reading each file with PE Explorer, we agree with Naveen that they all depend upon a core IPP DLL (described as ippcore above), and an IPP OMP library DLL. We will plan on deploying these as well as our set of 6 sig proc DLLs optimized for the various processor families for 32-bit systems.

Just for an update: since version 6.0, two new libraries were added into IPP.

Data Integrity: ippdi.lib (windows*) or (linux*)
Generated Functions: ippgen.lib (windows*) or (linux*)

And for the latest version Library Dependencies by Domain will looks like:
Domain | Library | Dependent on
Audio Coding ippac ippdc, ipps, ippcore
Color Conversion ippcc ippi, ipps, ippcore
Cryptography ippcp ippcore
Computer Vision ippcv ippi, ipps, ippcore
Data Compression ippdc ipps, ippcore
Data Integrity ippdi ippcore
Generated Functions ippgen ipps, ippcore
Image Processing ippi ipps, ippcore
Image Compression ippj ippi, ipps, ippcore
Small Matrix Operations ippm ippi, ipps, ippcore
Realistic Rendering ippr ippi, ipps, ippcore
Signal Processing ipps ippcore
Speech Coding ippsc ipps, ippcore
Speech Recognition ippsr ipps, ippcore
String Processing ippch ipps, ippcore
Video Coding ippvc ippi, ipps, ippcore
Vector Math ippvm ippcore

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.