Я хочу, чтобы TBB работал, но у меня возникли небольшие трудности с компиляцией в Ubuntu 14.04. Думаю, скорее всего проблема с установкой расположения библиотек для компилятора.
Я установил TBB с помощью следующей команды:
sudo apt-get install libtbb-dev
У меня есть небольшой тестовый пример, который я сейчас пытаюсь скомпилировать. Код выглядит следующим образом:
#include "tbb/task_scheduler_init.h"
int main(int argc, char* argv[]) {
tbb::task_scheduler_init init;
return 0;
}
Команда, которую я запускаю для компиляции этого кода, выглядит следующим образом:
g++ -std=c++11 -g -O2 -ltbb simple_test.cc -o simple_test
Я запускаю это с G++ версии 4.9.1. Когда я пытаюсь скомпилировать, я получаю следующие ошибки:
/tmp/cc7Ls8Sb.o: In function `task_scheduler_init':
/usr/include/tbb/task_scheduler_init.h:126: undefined reference to `tbb::task_scheduler_init::initialize(int, unsigned long)'
/tmp/cc7Ls8Sb.o: In function `~task_scheduler_init':
/usr/include/tbb/task_scheduler_init.h:132: undefined reference to `tbb::task_scheduler_init::terminate()'
collect2: error: ld returned 1 exit status
Местоположение файла task_scheduler_init.h
— /usr/include/tbb/task_scheduler_init.h
.
Вы хоть представляете, что я делаю не так?
РЕДАКТИРОВАТЬ: я переупорядочил аргументы для g++, и это заработало:
g++ simple_test.cc -std=c++11 -g -O2 -ltbb -o simple_test
Я действительно не понимаю, почему это изменение сделало компиляцию успешной.