在调试模式下使用Intel TBB

时间:2018-05-02 14:07:23

标签: c++ tbb

我正在尝试使用英特尔线程构建模块调试C ++代码,我在此处找到了该过程 Debugging in threading building Blocks。 我的问题与以下句子有关。

  

确保将宏TBB_USE_DEBUG设置为1进行编译,以便启用TBB的检查。

我添加了宏#define TBB_USE_DEBUG 1 在我的主要功能的开头。但是,在编译时我得到以下警告

warning: "TBB_USE_DEBUG" redefined
 #define TBB_USE_DEBUG 1
/usr/include/tbb/tbb_config.h:287:0: note: this is the location of the previous definition
 #define TBB_USE_DEBUG 0

因此我有两个问题:

  • 我把宏放在了好地方吗?
  • 如何检查我的代码是否确实与调试库链接?

2 个答案:

答案 0 :(得分:1)

您必须在之前放置#define ,其中包含TBB库中的任何内容。特别是,请确保它出现在源文件或头文件中的任何#include <tbb>之前。

答案 1 :(得分:0)

根据errortext,在包含后插入了define。意思是,它很可能没有任何影响,因为

  • 仅在以前包含的标题中评估define
  • 或因为您的主要功能以外的来源没有看到宏

解决此问题

  • preferred:将所有源文件的define设置为compiler-parameter。这通常是-D参数
  • 或在所有来源中的任何包含之前设置定义。通常由委托标题完成。

我不知道如何测试调试是否有效,因为我不知道TBB。