#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