How to install TBB from source on Linux and make it work
I have come with the solution. I'll post it here so it will help others with this topic.
Download the latest stable source code and uncompress it, i.e in
~/tbbsrc
Inside, type
make
. It should start compiling the tbb library and the memory allocators.The headers are in
~/tbbsrc/include
Inside
~/tbbsrc/build
will be two new folders, one for the release version and the other for the debug version. Those folders are named likearchitecture_ldVersion_g++Version_kernelVersion
.I recommend setting some variables, for example in your
~/.bashrc
file, like:
TBB_INSTALL_DIR = $HOME/tbbsrc
TBB_INCLUDE = $TBB_INSTALL_DIR/include
TBB_LIBRARY_RELEASE = $TBB_INSTALL_DIR/build/RELEASE_FOLDER
TBB_LIBRARY_DEBUG = $TBB_INSTALL_DIR/build/DEBUG_FOLDER
- Let's try a simple example:
// main.cpp
#include "tbb/task_scheduler_init.h"
int main(int argc, char* argv[]) {
// tbb::task_scheduler_init init(tbb::task_scheduler_init::automatic);
// implicit tbb::task_sheduler_init::automatic
tbb::task_scheduler_init init;
return 0;
}
- To compile, for example, with the release version:
g++ main.cpp -I$TBB_INCLUDE -Wl,-rpath,$TBB_LIBRARY_RELEASE -L$TBB_LIBRARY_RELEASE -ltbb
Note: with
-Wl,-rpath,$TBB_LIBRARY_RELEASE
, we are telling the dynamic linker where to findlibtbb.so
- And that should work fine!
Best regards!
Installation for Apple clang 5.1: [thanks to rwols for the info]
Instead of typing make
, type make compiler=clang
or make compiler=clang stdlib=libc++
https://github.com/wjakob/tbb seems to be the way to go.
git clone https://github.com/wjakob/tbb.git
cd tbb/build
cmake ..
make -j
sudo make install