Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 10/31/2024
Public
Document Table of Contents

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

The following table provides description of libraries available for linking.

  Single-threaded

(non-threaded)

Threading Layer

(externally threaded)

Description Suitable for application-level threading Implementation of application-level threading depends on single-threaded libraries
Found in

Main package

After installation:

<ipp directory>/lib and <ipp directory>/lib32 (static - Windows & Linux, dynamic - Linux only)

<ipp directory>/bin/ and <ipp directory>/bin32(dynamic - Windows only)

Static linking

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

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

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

Linux* OS: _tl_<threading_sfx> suffix in a library name (libipp<domain>_tl_<threading_sfx>.a)

+ single-threaded libraries dependency, where <threading_sfx> is one of {tbb, omp}

Dynamic Linking

Default (no suffix)

Windows* OS: ipp<domain>.dll

Linux* OS: libipp<domain>.so

_tl_<threading_sfx> suffix

Windows* OS: ipp<domain>_tl_<threading_sfx>.dll

Linux* OS: libipp<domain>_tl_<threading_sfx>.so

+ single-threaded library dependency, where <threading_sfx> is one of {tbb, omp}

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

  • Windows* OS:

    Intel® 64: SET LIB=<ipp directory>\lib

  • Linux* OS:

    Single-threaded Intel® 64: gcc <options> -L <ipp directory>/lib

NOTE:

On Linux* OS, 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 <intel compiler directory>/lib folders.

Threading Layer depends on the OpenMP* or Intel® Threading Building Blocks (Intel® TBB) library according to the selected threading type. You can find these libraries in <intel compiler directory>/lib or <tbb directory>/lib folders.