Нужна помощь, чтобы заставить intel TBB работать?

#c #c 11 #tbb

#c #c 11 #tbb

Вопрос:

Я запустил brew install tbb на своем устройстве mac os sierra. После запуска этого я должен иметь возможность включить #include в свои проекты на c , верно? По какой-то причине, когда я компилирую, эти файлы не найдены. Помощь была бы признательна

Комментарии:

1. Привет. Спасибо за ответ. Я написал реализацию параллельной очереди для своего собственного приложения и хочу протестировать ее в параллельной очереди Intel tbb. Я использую OS X sierra. Я просто установил homebrew, а затем запустил «brew install tbb» в терминале. Я предполагаю, что это устанавливает все переменные среды, а что нет? Затем, когда я пытаюсь получить доступ к concurrent_queue. заголовок h через оператор include я получаю сообщение об ошибке: /Users/irtazasafi/ClionProjects/as2/main.cpp:7:9: фатальная ошибка: ‘concurrent_queue. файл h ‘ не найден

2. Я пробовал оба. Когда я пытаюсь <tbb/concurrent_queue.h>, он по-прежнему не может найти файл. Brew сообщает, что он уже установлен (tbb-4.4-20160916 уже установлен).

Ответ №1:

Несколько вещей…

Проверьте параметры пакетов

Прежде чем устанавливать какие-либо homebrew пакеты, приобретите привычку проверять доступные параметры, а не просто принимать параметры по умолчанию. Это часто дает вам представление о доступных функциях, о которых вы не знаете. Итак, для tbb :

 brew options tbb
  

Вывод

 --c  11
    Build using C  11 mode
  

Итак, вероятно, стоит использовать:

 brew install tbb --c  11
  

или

 brew reinstall tbb --c  11
  

Сначала найдите включаемые файлы и библиотеки самостоятельно

Если вы пытаетесь включить файл заголовка, попробуйте сначала найти его самостоятельно, используя find :

 find /usr /opt concurrent_queue.h
  

Вывод

 /usr/local/Cellar/tbb/4.4-20160916/include/tbb/concurrent_queue.h
  

Итак concurrent_queue.h , в моей системе есть только один. Теперь нам нужно сообщить компилятору, как его найти. Если вы посмотрите /usr/local/include , где homebrew помещаются заголовки, вы увидите это:

 ls -l /usr/local/include | grep tbb
lrwxr-xr-x    1 mark  admin    38  5 Oct 09:10 tbb -> ../Cellar/tbb/4.4-20160916/include/tbb
  

Итак, tbb заголовки находятся в /usr/local/include/tbb (что является символической ссылкой на homebrew ‘s Cellar), поэтому вам нужно убедиться, что ваш компилятор просматривает /usr/local/include .

 g  -6 -I/usr/local/include ...
  

Помните, что вы можете проверить, куда смотрит ваш компилятор, используя -v , например:

 g  -6 -v ...
  

После того, как вы помогли компилятору найти заголовочные файлы (#includes ), вам нужно будет помочь компоновщику найти библиотеки, поэтому ваша команда станет:

 g  -6 -I/usr/local/include program.cpp -o program -L /usr/local/lib -ltbb
  

Комментарии:

1. найдите /usr /opt concurrent_queue . h говорит, что у меня нет concurrent_queue. h на моем диске.

2. Irtazas-MacBook-Pro: ~ irtazasafi $ brew установить tbb —c 11 Предупреждение: tbb-4.4-20160916 уже установлен

3. Извините, я имел в виду find /usr -name concurrent_queue.h

4. Итак, если вы используете g , попробуйте g -std=c 11 main.cpp -I /usr/local/include -o main -ltbb

5. Круто — мы почти на месте! Просто добавьте -L /usr/local/lib