题
我目前在C文件中有几个#Define,这些#Define将一些功能关闭到用于测试的硬件。但是,我想在不确定的情况下将它们记录下来。
例如:
这很好:
/// \def SIMULATE_SOME_HW_INTERFACE
/// Define this when you want to simulate HW interface.
#define SIMULATE_SOME_HW_INTERFACE
当您将#Define更改为#UNDEF时,您会在Doxygen中获得警告,并且它不会显示在Doxygen生成的输出中。我想记录此#Define的定义或未定义。
我如何强制doxygen记录#undef ???
解决方案
将它们定义在仅由doxygen包含的标头文件中(从主源放置在单独的目录树中)。
通过用定义仅在doxygen设置中定义的定义来保护此标头文件,例如:
#ifdef ONLY_FOR_DOXYGEN
/// \def SIMULATE_SOME_HW_INTERFACE
/// Define this when you want to simulate HW interface.
#define SIMULATE_SOME_HW_INTERFACE
#endif
我已经用它有条件地包括 轻量级类定义 对于MFC基类等事情,因此它们是类层次结构的基础,而无需解析所有MFC。
其他提示
我通过在#Define下添加#UNDEF找到了一种kludgy的方式。这样,它是为doxygen定义的,但立即为编译器未定义。
/// \def SIMULATE_SOME_HW_INTERFACE
/// Define this when you want to simulate HW interface.
/// Comment out #undef to simulate HW interface
#define SIMULATE_SOME_HW_INTERFACE
#undef SIMULATE_SOME_HW_INTERFACE
我试图弄清楚如何使用预定义的选项在doxyconfig文件中设置simulate_hw_interface。无法正常工作。因此,这是我到目前为止最好的解决方案。
我解决了我在主要标题中记录这样的编译器的问题:
/**
* \defgroup flags Compilerflags
*/
/**
* \def MY_FLAG
* \ingroup flags
* Dokumentation....
*/
#ifndef MY_FLAG
#define MY_FLAG
#undef MY_FLAG
#else
#define MY_FLAG
#endif
这样,一切都很好:doxygen和编译,您可以继续在命令行中指定标志...
不隶属于 StackOverflow