是的,这是可能的。该Doxygen documentation说:
为了证明全局对象(函数,类型定义,枚举,宏等), 你必须证明它们所定义的文件。换句话说, 那里至少必须在该文件中的
/*! \file */
或
/** @file */
线。
您可以使用@defgroup
,@addtogroup
和@ingroup
把相关物品放入同一个模块,即使它们出现在不同的文件中(详见文档here)。下面是对我工作的一个小例子(使用Doxygen的1.6.3):
的Doxyfile:
# Empty file.
Test.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();
};
/** @} */
Bar.h:
/** @file */
/**
* @ingroup TEST_GROUP
* My Function.
*/
void Bar();
在这种情况下,TEST_DEFINE
文档出现在测试。h。在HTML输出文件选项卡下项和TEST_AAA
等定义在下的模块测试集团出现带班Foo
和功能Bar
选项卡在一起。
有一点需要注意的是,如果你把文件名之后@file
命令,e.g:
/** @file Test.h */
那么这必须在文件的实际名称相匹配。如果没有,则不会生成文件中项目的文档。
如果您不想添加@file
命令,另一种解决方案是在Doxyfile中设置EXTRACT_ALL = YES
。
我希望这有助于!
这是否意味着无法将它们放入组/模块中?多数民众赞成我真的想要做的,以便他们与他们相关的功能/类/等(其中也传播了几个文件)。 – 2010-03-01 15:53:07
嗨火Lancer,我已经添加了一些关于分组到我的答案的细节 – ChrisN 2010-03-01 17:23:34
好的,我得到它在一个addtogroup或defgroup块中工作。 ingroup似乎在某处放弃了定义(defgroup与组主文档在一个.cpp文件中,除了头文件中定义的内容以外,其他所有内容都已放入组中)......我猜测这肯定是某种错误在Doxygens部分? – 2010-03-02 07:49:40