How to install TBB from source on Linux and make it work

后端 未结 2 376
故里飘歌
故里飘歌 2020-12-29 09:22

I would like to know how to install TBB from source and make it work on a Linux system. I have had some problems when it comes using it, problems that don\'t appear if I in

相关标签:
2条回答
  • 2020-12-29 09:33

    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
    
    0 讨论(0)
  • 2020-12-29 09:49

    I have come with the solution. I'll post it here so it will help others with this topic.

    1. Download the latest stable source code and uncompress it, i.e in ~/tbbsrc

    2. Inside, type make. It should start compiling the tbb library and the memory allocators.

    3. The headers are in ~/tbbsrc/include

    4. Inside ~/tbbsrc/build will be two new folders, one for the release version and the other for the debug version. Those folders are named like architecture_ldVersion_g++Version_kernelVersion.

    5. 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
    
    1. 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;
    }
    
    1. 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 find libtbb.so

    1. 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++

    0 讨论(0)
提交回复
热议问题