2017-01-13 4 views
0

Ich versuche, diesen Code in Clion IDE ausführen. Ich möchte die TBB-Bibliothek verwenden. Ich benutze C++ 11.Verwenden Sie Tbb-Bibliothek in Clion IDE

#include “tbb/blocked_range.h” 
#include “tbb/parallel_for.h” 

#include <vector> 

const size_t SIZE = 10000000; 

int main() 
{ 
    std::vector<double> myArray(SIZE); 

    tbb::parallel_for(tbb::blocked_range<size_t>(0, SIZE), 
    [&myArray](const tbb::blocked_range<size_t> &r) 
    { 
     for (size_t i = r.begin(); i != r.end(); i++) 
      Calculate(myArray[i]); 
    }); 

    return 0; 
} 

von der Kommandozeile:

g++ task1.cpp -o task1 -std=c++11 -fopenmp -ltbb

dieser Code Arbeit perfekt.

Aber in Clion nicht.

Ich denke Problem in meiner CMakeLists.txt Datei.

Was CLION mir sagen:

CMakeFiles/parallel.dir/main.cpp.o: In function `run': 
/usr/include/tbb/parallel_reduce.h:148: undefined reference to `tbb::task_group_context::~task_group_context()' 
/usr/include/tbb/parallel_reduce.h:148: undefined reference to `tbb::task_group_context::~task_group_context()' 
CMakeFiles/parallel.dir/main.cpp.o:(.rodata+0xa0): undefined reference to `typeinfo for tbb::task' 
CMakeFiles/parallel.dir/main.cpp.o:(.rodata+0x1c8): undefined reference to `tbb::task::note_affinity(unsigned short)' 
CMakeFiles/parallel.dir/main.cpp.o: In function `tbb::task_group_context::task_group_context(tbb::task_group_context::kind_type, unsigned long)': 
/usr/include/tbb/task.h:441: undefined reference to `tbb::task_group_context::init()' 

...

CMakeLists.txt

cmake_minimum_required(VERSION 3.6) 
project(parallel) 
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp -ltbb") 
set(CMAKE_CXX_STANDARD 11) 

set(SOURCE_FILES main.cpp main.cpp) 
add_executable(parallel ${SOURCE_FILES}) 

Wie kann ich meine CMakeLists.txt Datei ändern oder sollte ich etwas anderes tun? Danke für deine Hilfe.

+0

Verwenden 'include_directories ("path/to/TBB_INCLUDE")' – pSoLT

+0

die gleichen, funktionieren nicht – partizander

Antwort

0

Sie sollten einen Cmake Test verwenden, um zu finden libtbb, die auch die richtigen Variablen festlegt.

Es gibt eine FindTBB auf Github, die Sie versuchen können zu verwenden.