需要帮助让英特尔 TBB 正常工作吗?

Need help getting intel TBB working?

我 运行 在我的 mac os sierra 设备上安装 tbb。在 运行 这之后我应该能够将 #include 包含到我的 C++ 项目中吧?由于某种原因,当我编译时找不到这些文件。帮助将不胜感激

一些事情...

检查包上的选项

在安装任何 homebrew 包之前,养成检查可用选项的习惯,而不是只接受默认选项。它通常会让您深入了解您不知道的可用功能。所以,对于 tbb:

brew options tbb

输出

--c++11
    Build using C++11 mode

所以,它可能值得使用:

brew install tbb --c++11

brew reinstall tbb --c++11

首先自己找到包含文件和库

如果您要包含 header 文件,请先尝试自己查找,使用 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 放置 headers 的地方,你会看到:

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 header 位于 /usr/local/include/tbb(这是 homebrew 的 Cellar 的符号链接),因此您需要确保您的编译器正在寻找 /usr/local/include.

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

请记住,您可以使用 -v 检查编译器的查找位置,如下所示:

g++-6 -v ...

帮助编译器找到 header 文件 (#includes) 后,您将需要帮助链接器找到库,因此您的命令将变为:

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