阅读 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.
我做错了什么?
根据
SKIP_FUNCTION_MACROS
的文档(请参阅:https://www.doxygen.nl/manual/config.html#cfg_skip_function_macros):
如果
标记设置为SKIP_FUNCTION_MACROS
,则 Doxygen 的预处理器将删除对单独位于一行、名称全大写且不以分号结尾的类函数宏的所有引用。此类函数宏通常用于样板代码,如果不删除,将会使解析器感到困惑。YES
换句话说,代码中的引用被删除,而不是宏本身。
要跳过符号:
EXCLUDE_SYMBOLS
(请参阅:https://www.doxygen.nl/manual/config.html#cfg_exclude_symbols):
标签可用于指定应从输出中排除的一个或多个符号名称(命名空间、类、函数等)。符号名称可以是完全限定名称、单词,或者如果使用通配符 *,则可以是子字符串。示例:EXCLUDE_SYMBOLS
、ANamespace
、AClass
、ANamespace::AClass
ANamespace::*Test
所以在这种情况下:
EXCLUDE_SYMBOLS = DOXYGENIGNORESME