IT++ Logo Newcom Logo

Linking with IT++

Table of Contents

Introduction

Since version 3.9.0, there are two convenient methods of linking your programs with the IT++ library. The first one employs the `pkg-config' command (see http://pkgconfig.freedesktop.org/), wheres the second one uses `itpp-config' script. These methods are shortly described below.

Using the pkg-config command

`pkg-config' is a helper tool used when compiling applications and libraries. It helps you insert the correct compiler and linker options. The syntax of the `pkg-config' is as follows:

% pkg-config <options> <library_name>  

For instance, assuming that you need to compile an IT++ based program `my_prog.cpp', you should use the following command:

% g++ `pkg-config --cflags itpp` -o my_prog my_prog.cpp `pkg-config --libs itpp`

For more information see the `pkg-config' man pages.

Using the itpp-config script

IT++ provides a shell script called `itpp-config`, which is installed by default in `$prefix/bin' (`/usr/local/bin') directory. It can be used to simplify compilation and linking of IT++ based programs. The usage of this script is quite similar to the usage of the `pkg-config' command.

Assuming that you need to compile the program `my_prog.cpp' you can now do that with the following command:

% g++ `itpp-config --cflags` -o my_prog my_prog.cpp `itpp-config --libs`

If you would like to use the same optimisation flags (CXXFLAGS), as those used for compiling the IT++ library, you might try the following command:

% g++ `itpp-config --cflags-opt` -o my_prog_opt my_prog.cpp `itpp-config --libs-opt`

Moreover, if you compiled and installed the `libitpp_debug.*' library by using `--enable-debug' swich to configure, you can compile and link your program with debugging options using the following command instead:

% g++ `itpp-config --cflags-debug` -o my_prog_debug my_prog.cpp `itpp-config --libs-debug`

A list of `itpp-config' options can be obtained by typing:

% itpp-config --help

If the `itpp-config' command is not found by your shell, you should add its location `$prefix/bin' to the PATH environment variable, e.g.:

% export PATH=/usr/local/bin:$PATH

Using IT++ with dynamic linking

When using static linking some of the library routines in IT++ are copied into your executable program. This can lead to unnecessary large executables. To avoid having too large executable files you may use dynamic linking instead. Dynamic linking means that the actual linking is performed when the program is executed. This requires that the system is able to locate the shared IT++ library file during your program execution. If you install the IT++ library using a non-standard prefix, the `LD_LIBRARY_PATH' environment variable might be used to inform the linker of the dynamic library location, e.g.:
export LD_LIBRARY_PATH=<IT++ installation prefix>/lib:$LD_LIBRARY_PATH

Linking your own programs with IT++ using MSVC++ .NET

It is assumed here that the IT++ library is already compiled and linked with either ACML or MKL, using Microsoft Visual C++ .NET compiler (cf. IT++ Compilation and Installation using Microsoft Visual C++ .NET).

To link your own programs with IT++ and ACML or MKL, several things need to be correctly set up in your project:

Please note that Project settings for your program must be made for both the Debug and Release modes.

SourceForge Logo

Generated on Thu Apr 19 14:24:00 2007 for IT++ by Doxygen 1.4.6