C++ 需要帮助使英特尔TBB正常工作吗?
我在mac os sierra设备上运行了brew安装tbb。在运行这个之后,我应该能够将包含在我的C++项目中的包含在内吗?由于某种原因,当我编译这些文件时没有找到。如果您能帮上忙,我们将不胜感激 检查软件包上的选项 在安装任何C++ 需要帮助使英特尔TBB正常工作吗?,c++,c++11,tbb,C++,C++11,Tbb,我在mac os sierra设备上运行了brew安装tbb。在运行这个之后,我应该能够将包含在我的C++项目中的包含在内吗?由于某种原因,当我编译这些文件时没有找到。如果您能帮上忙,我们将不胜感激 检查软件包上的选项 在安装任何自制软件包之前,请养成检查可用选项的习惯,而不仅仅是接受默认选项。它通常会让你深入了解那些你不知道的可用特性。因此,对于tbb: brew options tbb 输出 --c++11 Build using C++11 mode /usr/local/Ce
自制软件包之前,请养成检查可用选项的习惯,而不仅仅是接受默认选项。它通常会让你深入了解那些你不知道的可用特性。因此,对于tbb
:
brew options tbb
输出
--c++11
Build using C++11 mode
/usr/local/Cellar/tbb/4.4-20160916/include/tbb/concurrent_queue.h
因此,它可能值得使用:
brew install tbb --c++11
或
首先自己查找包含文件和库
如果要包含头文件,请首先尝试使用查找:
find /usr /opt concurrent_queue.h
输出
--c++11
Build using C++11 mode
/usr/local/Cellar/tbb/4.4-20160916/include/tbb/concurrent_queue.h
因此,在我的系统上只有一个并发队列.h
。现在我们需要告诉编译器如何找到它。如果您查看/usr/local/include
,这是自制
放置标题的地方,您将看到:
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
(这是指向自制酒窖的符号链接),因此您需要确保编译器正在查看/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
你好谢谢你的回复。我为自己的应用程序编写了一个并发队列实现,并希望根据intel tbb的并发队列对其进行测试。我使用OSX。我只是安装了自制软件,然后在终端中运行了“brew安装tbb”。我假设这设置了所有的环境变量,什么不设置?然后,当我试图通过include语句访问concurrent_queue.h头时,我得到一个错误:/Users/irtazasafi/ClionProjects/as2/main.cpp:7:9:致命错误:“concurrent_queue.h”文件未找到我尝试了这两种方法。当我尝试时,仍然找不到该文件。Brew说它已经安装(tbb-4.4-20160916已经安装)。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