繁体   English   中英

如何获得Doxygen从包含文件扩展宏?

[英]How do I get Doxygen to expand macros from include files?

我在名为macros.h的文件中定义了许多多行宏。 在我的doxyfile中,我有

ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = NO
PREDEFINED             =
EXPAND_AS_DEFINED      =
SKIP_FUNCTION_MACROS   = NO

但是Doxygen仍然不会在任何包含macros.h的源文件中扩展宏。 我运行“ doxygen -d预处理程序doxyfile”以查看预处理程序的输出,并且它输出如下消息:

#include macros.h: not found or already included! skipping...

您已经告知编译器您的包含路径,但是您没有告诉doxygen。 因此,它尝试打开“ macros.h”并得到一个找不到文件的错误。

您需要在Doxyfile中正确设置INCLUDE_PATH

@Ben:您实际上有INCLUDE_PATH上班吗?

我了解理论。 我已经按照说明(以绝对形式和相对形式)设置了INCLUDE_PATH,但无济于事。 我已将INCLUDE_FILE_PATTERNS设置为* .h。 但是,在处理我的.cpp文件时,Doxygen会在INPUT目录中找到所有标头,但在lib /子目录中却找不到任何标头。

我发现的唯一解决方案是:

1)在INPUT目录中创建一个指向其lib /子目录中每个标题的符号链接。 这是丑陋且无法概括的。

2)将RECURSIVE标签设为YES。 这是不希望的,因为现在将INPUT的tests /子目录的全部内容添加到了生成的文档中。

我倾向于认为INCLUDE_PATH功能已被破坏(至少在我正在运行的1.7.1版本中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM