我在我的mac os sierra设备上运行了brew install tbb。运行之后我应该能够将#include包含到我的c ++项目中吗?出于某种原因,当我编译这些文件时找不到。帮助将不胜感激
答案 0 :(得分: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
的Cellar的符号链接),因此您需要确保您的编译器正在查看{{1} }。
/usr/local/include
请记住,您可以使用g++-6 -I/usr/local/include ...
来查看编译器的查找位置,如下所示:
-v
一旦你帮助编译器找到头文件(#includes),你就需要帮助链接器找到库,这样你的命令就会变成:
g++-6 -v ...