Node C ++源代码编译错误

时间:2018-04-16 22:08:12

标签: c++ node.js eclipse

我正在尝试在eclipse下构建node.js. (我想使用IDE来逐步完成节点的内部,所以我可以回答一些问题)。我收到一个我不明白的编译错误。以下是来自资料来源的两条相关行:

static uint64_t counter_gc_start_time;

counter_gc_start_time = NODE_COUNT_GET_GC_RAWTIME();

我用(手动扩展的)宏替换它,因此;

counter_gc_start_time =   (do { } while (false));

但我仍然遇到编译错误:

/Users/concunningham/Documents/Node/node/src/node_counters.cc:81:30: error: expected expression
counter_gc_start_time =   (do { } while (false));

我在OS / X,10.13.4下编译,使用编译器标志-std = c ++ 11。

有谁能告诉我这行代码应该做什么?

1 个答案:

答案 0 :(得分:0)

如果你看node_counters.h

#ifdef HAVE_PERFCTR
#include "node_win32_perfctr_provider.h"
#else
...
#define NODE_COUNT_GET_GC_RAWTIME() do { } while (false)
#endif

定义HAVE_PERFCTR时,包含node_win32_perfctr_provider.h而不是无法编译的定义。 NODE_COUNT_GET_GC_RAWTIME();的定义位于node_win32_perfctr_provider.cc

我不知道这个库,这正是我通过查看文件看到的。 HAVE_PERFCTR定义的位置和时间超出了我搜索的范围。但是如果你的机器上有lib,答案就在那里。我必须下载才能了解更多信息。正如jbp所指出的那样,这看起来像某种窗户。