c++ - 为 TBB 注册环境变量

标签 c++ ubuntu-18.04 tbb

我刚开始运行 TBB 第一个示例,但无法解决此语法错误。

error: ‘tbb’ is not a namespace-name

我阅读了关于 Register the Environment Variables 的页面,但由于我使用“sudo apt-get install libtbb-dev”安装了 tbb,所以我找不到任何 tbbvars.[c]sh 脚本。有人可以用简单的语言解释如何找到这个文件并在 ubntu 18.04 上注册环境变量并使用 TBB。

这是我编译并遇到此错误的 C++ 代码:

using namespace tbb;

int main()
{
    return 0;
}

如果我包含“tbb.h”,我会遇到另一个错误,即undefined reference to tbb::interface7::internal::task_arena_base::internal_initialize()

最佳答案

tbb未在该源文件中定义。我猜错误消息有点误导,即使它是真的。 tbb不是任何东西,包括命名空间名称。

所以需要自己定义,添加#include <tbb.h>或类似的东西来编译

然后根据评论,你得到链接器错误。您需要将库添加到链接。如何,取决于您构建系统,但您可能需要通过 -ltbb作为 gcc 命令行的链接器标志。

强制性:不要使用 using namespace这样,很难找到错误,并导致不必要的混淆,尤其是当您只是在学习时,就像您看起来那样。

关于c++ - 为 TBB 注册环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59518103/

相关文章:

c++ - 错误共享和原子变量

linux - 从 1.5.8 升级到 1.6.7 后未绑定(bind)速度慢 50%

multithreading - 英特尔TBB使用的线程数

php - 无法将 docker mysql 数据库连接到 codeigniter 应用程序

c++ - 如何在使用 C++11 线程模型或 tbb 线程类时取消特定线程?

c++ - 英特尔 TBB 中的任务延续

c++ - 使用 C++ 进行名称绑定(bind)的 EDSL

c++ - 错误 : C2065: 'DBL_MAX' : undeclared identifier (in VS2008 but not in VS2010)

c++ - 如何在vector<vector<float>*>*中写入数据?

linux - 这是systemd中的错误吗?