问题描述
我正在尝试为以下代码中的 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 (将#修改为@)