我是否正确使用了SKIP_FUNCTION_MACROS?

问题描述 投票:0回答:1

阅读 Doxygen 文档后,我预计在我的 Doxygen 配置文件中设置

ENABLE_PREPROCESSING = YES
SKIP_FUNCTION_MACROS = YES
会使以下 C 宏不被引用。

/*! \file test_skip_macro_doxygen.h
 */
/*!
 * \brief DOXYGENIGNORESME
 */
#define DOXYGENIGNORESME(a) (do {} while 0)

尽管如此,Doxygen 仍会在“宏”部分中发出文档并生成对其的引用。 Doxygen 版本:1.9.1.

我做错了什么?

doxygen
1个回答
0
投票

根据

SKIP_FUNCTION_MACROS
的文档(请参阅:https://www.doxygen.nl/manual/config.html#cfg_skip_function_macros):

如果

SKIP_FUNCTION_MACROS
标记设置为
YES
,则 Doxygen 的预处理器将删除对单独位于一行、名称全大写且不以分号结尾的类函数宏的所有引用。此类函数宏通常用于样板代码,如果不删除,将会使解析器感到困惑。

换句话说,代码中的引用被删除,而不是宏本身。

要跳过符号:

EXCLUDE_SYMBOLS
(请参阅:https://www.doxygen.nl/manual/config.html#cfg_exclude_symbols):

EXCLUDE_SYMBOLS
标签可用于指定应从输出中排除的一个或多个符号名称(命名空间、类、函数等)。符号名称可以是完全限定名称、单词,或者如果使用通配符 *,则可以是子字符串。示例:
ANamespace
AClass
ANamespace::AClass
ANamespace::*Test

所以在这种情况下:

EXCLUDE_SYMBOLS = DOXYGENIGNORESME

© www.soinside.com 2019 - 2024. All rights reserved.