Simgrid。如何将main.c分成几部分?

时间:2016-05-19 18:19:14

标签: c simgrid

这是一个master-worker示例的示例。 main.c文件由三个函数组成,具有以下结构:

#include <simgrid/msg.h>
XBT_LOG_NEW_DEFAULT_CATEGORY(tuto, "all the info and defbug messages of this tutorial");

int master(int argc, char *argv[]){...}
int worker(int argc, char *argv[]){...}
int main(argc, char *argv[]){...}

我想将main.c分成三个文件:main.cworker.cmaster.c。 但如果我要写

XBT_LOG_NEW_DEFAULT_CATEGORY(tuto, "all the info and debug messages of this tutorial")在每个文件中都会出错:

multiple definition of `_simgrid_log_category__tuto__constructor__'

如果我只定义一次,我就不能在其他文件中使用XBT_INFO。 如何避免呢?

1 个答案:

答案 0 :(得分:1)

XBT_LOG_NEW_DEFAULT_CATEGORY(tuto, "...")定义了一个日志记录类别,因此您只能在一个.c文件中使用它。您可以使用以下命令在另一个文件中声明(和使用)此类别:

XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(tuto);

在文件中调用其中一个宏后,您可以在此文件中使用XBT_INFO(...)和朋友。