Developer Guide

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/
<arch>
(static) and
<ipp directory>
/redist/
<arch>
(dynamic)
Main package
After installation:
<ipp directory>
/lib/
<arch>
/tl/
<threading_type>
, where
<threading_type>
is one of
{tbb, openmp}
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
    :
    Single-threaded:
    SET LIB=
    <ipp directory>
    /lib/
    <arch>
    Threading Layer:
    SET LIB=
    <ipp directory>
    /lib/
    <arch>
    /tl/
    <threading_type>
    . Additionally, set path to single-threaded libraries:
    SET LIB=
    <ipp directory>
    /lib/
    <arch>
  • Linux* OS
    :
    Single-threaded:
    gcc
    <options>
    -L
    <ipp directory>
    /lib/
    <arch>
    Threading Layer:
    gcc
    <options>
    -L
    <ipp directory>
    /lib/
    <arch>
    /tl
    <threading_type>
    . Additionally, set path to single-threaded libraries:
    gcc
    <options>
    -L
    <ipp directory>
    /lib/
    <arch>
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.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.