使用Doxygen文档化配置宏

4
我希望能够使用doxygen文档记录配置宏,但是该宏并没有在源代码中定义,需要使用编译器定义设置进行定义。
由于我没有定义宏,所以我尝试了如下的方法,这是在doxygen手册中找到的(我将这个片段添加到了使用宏进行条件编译的头文件中)。
/*! \def MY_CONFIG_MACRO
    \brief Brief

    Details.
*/

然而,该文档不会出现在生成的HTML文件中。你知道为什么上面的方法不起作用吗?我该如何在使用宏定义的上下文中记录文档?


我认为这样做可能不太可行。我建议在需要此功能的组件的通用文档中提到此要求。这可以是函数、组或甚至主页面的文档。 - Georg P.
从文档上看,我同意这是正确的方法。你尝试过一个 [mcve] 吗?也许你的 doxygen-config 有些问题? - too honest for this site
@Olaf:我在一个空的头文件中尝试了上面的代码片段,并使用全新的doxywizard配置文件。Doxygen显示“警告:找到未知宏MY_CONFIG_MACRO的文档”。HTML为空。如果我定义了该宏,则会出现文档。 - Silicomancer
1
你的问题中应该包含这样的信息!那么,如何有条件地定义宏呢?无论如何都应该保证它存在。 - too honest for this site
一个误解... 在你问我之后,我尝试在一个空的头文件中测试它 :-) 是的,那将是一个解决方案。如果我无法让上述工作正常,创建一个仅存在于doxygen中的完整头文件也可能是一个解决方案。我会考虑一下。 - Silicomancer
1
也许你可以在\mainpage部分或其他\section中记录宏,甚至可以在Doxygen配置文件中由INPUT标签提到的单独的Markdown格式文件中记录。 - Ian Abbott
1个回答

3
我可以帮忙翻译。这段内容是关于编程的,建议将其翻译为:

遇到了同样的问题,解决方法如下:

在doxygen配置文件中添加如下内容:

PREDEFINED = IN_DOXYGEN

在源代码中的某个位置添加:


/*
  Exporting cmake compilation flags to doxygen,
  so they get documented.
*/
#ifdef IN_DOXYGEN
#define MY_CONFIG_MACRO
#endif /* IN_DOXYGEN */

然后 MY_CONFIG_MACRO 的文档被正确地获取。

1
我认为这是一个不错的解决方案。但对于我的情况,我决定创建一个单独的头文件,只由doxygen处理,而不包含在代码项目中。 - Silicomancer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接