Вопрос по linux, c++ – Как установить TBB из исходного кода в Linux и заставить его работать

7

Я хотел бы знать, как установить TBB из исходного кода и заставить его работать в системе Linux. У меня были некоторые проблемы с его использованием, проблемы, которые не появляются, если я устанавливаю TBB через менеджер пакетов.

На веб-странице TBB есть несколько рекомендаций о том, как это сделать, например, установка переменных LD_LIBRARY_PATH и CPATH или поиск источникаtbbvars.sh файл. Даже если я сделаю это, когда я пытаюсь собрать примерg++ Говорит, чтоtbb не найден.

Таким образом, вопрос заключается в том, является ли это простым способом того, как все настроить (скомпилировать исходный код, какие переменные я должен установить ...) для использования TBB.

Благодарю.

NOTE: Номер версии библиотеки, когда задавался этот вопрос, был 2 (если я правильно помню). Я лично протестировал решение до версии 4.1, но я думаю, что оно должно работать и для текущей версии4.2 (update 3) Поскольку метод строительства остается прежним.

./configure; делать; sudo сделать установку user529758
@ Gnosophilon Вы можете навести курсор мыши на тег и узнать, что такое TBB inf
Что ты уже пробовал? Есть ли документация для TBB? И самое главное: чтоis TBB? Можете быть более конкретными? Gnosophilon

Ваш Ответ

1   ответ
16

Я пришел с решением. Я опубликую его здесь, чтобы он помог другим в этой теме.

1) Загрузите последний стабильный исходный код и распакуйте его, т.е. в ~ / tbbsrc

2) Внутри наберите make. Он должен начать компилировать библиотеку tbb и распределители памяти.

3) Заголовки находятся в ~ / tbbsrc / include

4) Внутри ~ / tbbsrc / build будут две новые папки, одна для релизной версии, а другая для отладочной версии. Эти папки называются как «Architecture_ldVersion_g ++ Version_kernelVersion».

5) Я рекомендую установить некоторые переменные, например, в файле .bashrc, например:

  1. TBB_INSTALL_DIR = $HOME/tbbsrc
  2. TBB_INCLUDE = $TBB_INSTALL_DIR/include
  3. TBB_LIBRARY_RELEASE = $TBB_INSTALL_DIR/build/RELEASE_FOLDER
  4. TBB_LIBRARY_DEBUG = $TBB_INSTALL_DIR/build/DEBUG_FOLDER

6) Давайте попробуем простой пример:

// 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;
}

7) Чтобы скомпилировать, например, версию выпуска:

g++ main.cpp -I$TBB_INCLUDE -Wl,-rpath,$TBB_LIBRARY_RELEASE -L$TBB_LIBRARY_RELEASE -ltbb

С-Wl,-rpath,$TBB_LIBRARY_RELEASE мы сообщаем динамическому компоновщику, где найти libtbb.so

8) И это должно работать нормально!

С наилучшими пожеланиями!

Installation for Apple clang 5.1: [спасибо rwols за информацию]

Вместо того, чтобы печататьmake, типmake compiler=clang или жеmake compiler=clang stdlib=libc++

Error: User Rate Limit Exceeded Adri C.S.
Error: User Rate Limit Exceeded-WlError: User Rate Limit Exceededg++ 4.4Error: User Rate Limit Exceededg++ 4.7Error: User Rate Limit Exceeded Adri C.S.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы