Find the Intel® IPP Libraries Needed by Your Application


Intel® Integrated Performance Primitives (Intel® IPP) libraries needed in linking depend on the function domain and the linkage model you choose. Dynamic linkage and static linkage with dispatching are two simple and commonly used linkage models.

Function Domain

Intel® IPP libraries classify its function into about 16 domains. It is easy to discern the function domain for one function by the header file name.

For example a function ippsFind_8u(), check its description in reference manual


The functions ippsFind and ippsFindRev are declared in the ippch.h file. Then the function belong to ippch string processing domain.
Then check the below table, you will find the libraries the function needed.

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.

Code of Domain

Header file






audio coding


color conversion


string operations


core functions




computer vision


data compression


data integrity


spiral generated


image processing


JPEG compression


small matrix operations


realistic rendering and 3D data processing


signal processing


speech codecs


video codecs


vector math


embedded functionality

* refers to deprecated domain ( Please avoid starting any new projects with the deprecated domains )

** available only within the Intel® System Studio suite

Linking Options

Intel® Integrated Performance Primitives (Intel® IPP) is distributed as:

  • Static library: static linking results in a standalone executable
  • Dynamic/shared library: dynamic linking defers function resolution until runtime and requires that you bundle the redistributable libraries with your application

Previous generations of Intel® IPP implemented threading inside some functions (listed in the ThreadedFunctionsList.txt file). This simplified getting started with threading but, due to issues with performance and interoperability with other threading models, is no longer recommended for new development. Versions of the library with internal threading enabled for a subset of functions are distributed as a separate package.

The following table provides description of libraries available for linking.




(internally threaded)

DescriptionSuitable for application-level threadingUse only when no other form of threading is active
Found in

Main package

After installation: <ipp directory>/lib/<arch>

Separate download

After installation:<ipp directory>/lib/<arch>/threaded

Static linking

Windows* OS: mt suffix in a library name (ipp<domain>mt.lib)

Linux* OS and OS X*: no suffix in a library name (libipp<domain>.a)

Windows* OS: mt suffix in a library name (ipp<domain>mt.lib)

Linux* OS and OS X*: no suffix in a library name (libipp<domain>.a)

Dynamic Linking

Default (no suffix)

Windows* OS: ipp<domain>.lib

Linux* OS: libipp<domain>.a

OS X*: libipp<domain>.dylib

Default (no suffix)

Windows* OS: ipp<domain>.lib

Linux* OS: libipp<domain>.a

OS X*: libipp<domain>.dylib

You can also refer to this quick reference table.


Internally threaded (multi-threaded) versions of Intel® IPP libraries are deprecated but made available for legacy applications. It is strongly recommended to use the single-threaded version of the libraries for new development.

To switch between single- or multi-threaded Intel IPP libraries, set the path to the preferred library in system variables or in your project, for example:

  • Windows* OS:

    Single-threaded: SET LIB=<ipp directory>/lib/<arch>

    Multi-threaded: SET LIB=<ipp directory>/lib/<arch>/threaded

  • Linux* OS/OS X*

    Single-threaded: gcc <options> -L <ipp directory>/lib/<arch>

    Multi-threaded: gcc <options> -L <ipp directory>/lib/<arch>/threaded


On Linux* OS and OS X* Intel IPP library depends on the following Intel® C++ Compiler runtime libraries: libirc.a, libsvml.a, and libimf.a. You should add a link to these libraries into your project. You can find these libraries in <ipp directory> /lib or <intel compiler directory>/lib folders.

Additional Resources

Simplified Link Instructions for the IPP Library

Intel® IPP User Forum

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