对的,这是可能的。Doxygen 文档说:
要记录全局对象(函数、typedef、枚举、宏等),您必须记录定义它们的文件。换句话说,至少必须有一个
/*! \file */
或一个
/** @file */
此文件中的行。
您可以使用@defgroup
、@addtogroup
和@ingroup
将相关项目放入同一个模块中,即使它们出现在单独的文件中(有关详细信息,请参阅此处的文档)。这是一个对我有用的最小示例(使用 Doxygen 1.6.3):
多西文件:
# Empty file.
测试.h:
/** @file */
/**My Preprocessor Macro.*/
#define TEST_DEFINE(x) (x*x)
/**
* @defgroup TEST_GROUP Test Group
*
* @{
*/
/** Test AAA documentation. */
#define TEST_AAA (1)
/** Test BBB documentation. */
#define TEST_BBB (2)
/** Test CCC documentation. */
#define TEST_CCC (3)
/** @} */
Foo.h:
/** @file */
/**
* @addtogroup TEST_GROUP
*
* @{
*/
/** @brief My Class. */
class Foo {
public:
void method();
};
/** @} */
酒吧.h:
/** @file */
/**
* @ingroup TEST_GROUP
* My Function.
*/
void Bar();
在这种情况下,TEST_DEFINE
文档出现在HTML 输出的Files选项卡下的Test.h条目中,而等定义与 class和 function一起出现在 Modules 选项卡的Test Group下。TEST_AAA
Foo
Bar
需要注意的一件事是,如果您将文件名放在@file
命令之后,例如:
/** @file Test.h */
那么这必须与文件的实际名称匹配。如果没有,则不会生成文件中项目的文档。
如果您不想添加@file
命令,另一种解决方案是EXTRACT_ALL = YES
在 Doxyfile 中设置。
我希望这有帮助!