我不能为我的生活弄清楚如何在我的Mac上编译和链接英特尔TBB库。我已经运行了商业安装程序和tbbvars.sh脚本,但我无法弄清楚这一点。我觉得这是非常明显的事情,因为我做了这样的事情,所以有点太长了。
tbb_test.cpp
#include <tbb/concurrent_queue.h>
int main() {
tbb::concurrent_queue<int> q;
}
g++ tbb_test.cpp -I /Library/Frameworks/TBB.framework/Headers -ltbb
...找不到符号。
干杯!
更新:
g++ tbb_test.cpp -I /Library/Frameworks/TBB.framework/Headers -L /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib
作品!
答案 0 :(得分:3)
由于您使用的是框架而不是传统的库,因此您需要使用-framework
,例如:
g++ tbb_test.cpp -o tbb_test -framework TBB
而不是:
g++ tbb_test.cpp -o tbb_test -I /Library/Frameworks/TBB.framework/Headers -ltbb
答案 1 :(得分:0)
根据TBB Getting Started Guide(当前版本的第3页),$ INSTALL / bin目录中有一些脚本,如果你对它们运行source
,它们将设置正确的环境变量(例如source bin/tbbvars.sh
)。完成后,您不再需要在-I
命令行中指定-L
和g++
,这是单调乏味,容易出错,最重要的是丑陋。但你仍然需要使用-ltbb
:'(。这个建议也适用于那些使用其他类Unix操作系统的人,比如Linux。