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> <ipp directory> /redist/<arch> | Main package
After installation: <ipp directory> /lib/<arch> /tl/<threading_type> <threading_type> {tbb, openmp} |
Static linking | Windows* OS:
mt suffix in a library name (ipp )
<domain> mt.libLinux* 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>.libLinux* 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> .dllLinux* OS:
libipp <domain> .so | _tl_<threading_sfx> suffix
Windows* OS:
ipp <domain> _tl_<threading_sfx>.dllLinux* 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=. Additionally, set path to single-threaded libraries:<ipp directory>/lib/<arch>/tl/<threading_type>SET LIB=<ipp directory>/lib/<arch>
- Linux* OS:Single-threaded:gcc<options>-L<ipp directory>/lib/<arch>Threading Layer:gcc. Additionally, set path to single-threaded libraries:<options>-L<ipp directory>/lib/<arch>/tl<threading_type>gcc<options>-L<ipp directory>/lib/<arch>
On Linux* OS, Intel IPP library depends on the following Intel® C++ Compiler runtime libraries:
folders.
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>
/libThreading 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
or
folders.
<intel compiler directory>
/lib<tbb directory>
/lib