如何在Mac OS X上使用GCC链接英特尔TBB?

时间:2010-04-14 18:08:23

标签: c++ gcc linker intel tbb

我不能为我的生活弄清楚如何在我的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

作品!

2 个答案:

答案 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命令行中指定-Lg++,这是单调乏味,容易出错,最重要的是丑陋。但你仍然需要使用-ltbb:'(。这个建议也适用于那些使用其他类Unix操作系统的人,比如Linux。