带有函数宏的 Doxygen 调用图

问题描述

我正在尝试为以下代码中的 main 函数生成调用图,其中我将 MODE_A 作为预定义传递。

void FOO(int a);
void ZOO(int a);


#ifdef MODE_A
    #define function    FOO
#else
    #define function    ZOO
#endif

/**
 * @callgraph
 */
int main()
{
    function(69);
}

void FOO(int a){    cout << "FOO " << a;}

void ZOO(int a){    cout << "ZOO " << a;}

我在 Doxyfile 中的设置是:

# Difference with default Doxyfile 1.8.20 (f246dd2f1c58eea39ea3f50c108019e4d4137bd5)
OPTIMIZE_OUTPUT_FOR_C  = YES
EXTRACT_ALL            = YES
CASE_SENSE_NAMES       = YES
GENERATE_TREEVIEW      = YES
MACRO_EXPANSION        = YES
PREDEFINED             = MODE_A
EXPAND_AS_DEFINED      = function
SKIP_FUNCTION_MACROS   = NO
HAVE_DOT               = YES

我什至试过EXPAND_ONLY_PREDEF = YES。我可以尝试其他任何设置吗?

调试更新 我使用 doxygen -d Preprocessor 转储了上述代码的预处理器输出。并用宏 function 替换为 FOO 做了同样的事情。在这两种情况下,输出完全相同,如下所示:

00014 /**
00015  * @callgraph
00016 */
00017 int main()
00018 {
00019     FOO(34);
00020 }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)