需要帮助英特尔 TBB 工作吗?
Posted
技术标签:
【中文标题】需要帮助英特尔 TBB 工作吗?【英文标题】:Need help getting intel TBB working? 【发布时间】:2016-10-05 06:28:53 【问题描述】:我在我的 mac os sierra 设备上运行了 brew install tbb。运行此之后,我应该能够将#include 包含到我的 c++ 项目中,对吧?由于某种原因,当我编译这些文件时没有找到。帮助将不胜感激
【问题讨论】:
嗨。感谢您的回复。我为自己的应用程序编写了一个并发队列实现,并希望针对 intel tbb 的并发队列对其进行测试。我使用 OS X 山脉。我只是安装了自制软件,然后在终端中运行了“brew install tbb”。我假设这设置了所有环境变量,什么不是?然后,当我尝试通过包含语句访问 concurrent_queue.h 标头时,我收到错误:/Users/irtazasafi/ClionProjects/as2/main.cpp:7:9: fatal error: 'concurrent_queue.h' file not found跨度> 我都试过了。当我尝试一些事情......
检查软件包选项
在安装任何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
的地窖的符号链接),因此您需要确保您的编译器正在查找/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
【讨论】:
find /usr /opt concurrent_queue.h 说我的磁盘上没有 concurrent_queue.h。 Irtazas-MacBook-Pro:~ irtazasafi$ brew install tbb --c++11 警告:tbb-4.4-20160916 已经安装 对不起,我的意思是find /usr -name concurrent_queue.h
所以,如果您使用的是g++
,请尝试g++ -std=c++11 main.cpp -I /usr/local/include -o main -ltbb
酷 - 我们快到了!只需添加-L /usr/local/lib
以上是关于需要帮助英特尔 TBB 工作吗?的主要内容,如果未能解决你的问题,请参考以下文章