3

我一生都无法弄清楚如何在我的 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

作品!

4

2 回答 2

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
于 2010-04-14T18:27:32.323 回答
0

根据 TBB入门指南(当前版本的第 3 页),在 $INSTALL/bin 目录中有一些脚本,如果您source在它们上运行,它们将设置正确的环境变量(例如source bin/tbbvars.sh)。一旦你这样做了,你就不再需要在你的命令行中指定-I和,这很乏味,容易出错,最重要的是丑陋。但是你仍然必须使用:'(。这个建议也适用于那些使用其他类 Unix 操作系统的人,比如 Linux。-Lg++-ltbb

于 2011-02-21T05:45:47.230 回答