根据文档,您总是使用指向一组 HTML 文件的 doxygen 标记文件。那么标记文件本身到底有什么作用呢?对于生成 700 个 HTML 文件的中等规模项目,我的标记文件为 500Kb,因此其中显然有很多内容。但是,为什么我不直接告诉 doxygen 外部文档的位置呢?
Doxygen 没有在此类中添加我的任何成员函数的文档:
#ifndef SET_H_
#define SET_H_
/** @file */
/**
* A mathematical set
*/
class Set
{
virtual ~Set();
/**
* The countability of this set
* @returns Whether this set is a countable one or not.
*/
virtual bool isCountable();
...
}
#endif /* SET_H_ */
Run Code Online (Sandbox Code Playgroud)
它可以很好地生成类文档,但即使我设置EXTRACT_ALL为 YES,也不会生成函数文档。你知道为什么会这样吗?
我有一个 C 标头,我想为其编写介绍性注释。像这样:
/**
* @brief Provides stuff for my great program.
*/
#ifndef MYHEADER_H
#define MYHEADER_H
#define __USE_GLIBC
#endif
Run Code Online (Sandbox Code Playgroud)
此外,我有这个 Doxyfile:
FULL_PATH_NAMES = YES
TAB_SIZE = 8
OPTIMIZE_OUTPUT_FOR_C = YES
RECURSIVE = YES
INPUT = .
EXTRACT_ALL = YES
QUIET = YES
EXTRACT_STATIC = YES
Run Code Online (Sandbox Code Playgroud)
当我现在运行 Doxygen 时,它会生成 HTML 和 LaTeX 文档,但简短的描述最终会记录宏而不是整个文件。
那么我如何向 Doxygen 提供文件的简要描述呢?
我打算AClass在 Doxygen 组(假设)中包含一些记录的 C++ 类(假设)GROUP_C,而该组包含在另一个组(假设GROUP_B)中,而第二组包含在另一个基类(假设GROUP_A)中。像这样:
/** \addtogroup GROUP_A */
/** @{ */
/** \defgroup GROUP_B */
/** @{ */
/** \defgroup GROUP_C */
/** @{ */
/// Comment
class AClass
{
};
/** @} */
/** @} */
/** @} */
Run Code Online (Sandbox Code Playgroud)
我正在尝试为这种情况获得一个干净且合乎逻辑的文档,但是,正如我所看到的那样简单,我无法找到比 Doxygen 官方文档更具体的内容,其中没有提及任何循环分组问题。然而,仅仅对上面的简单代码进行 doxygen 处理,就会出现这样的问题:
warning: Refusing to add group GROUP_C to group GROUP_B, since the latter is already a subgroup of the former
Run Code Online (Sandbox Code Playgroud)
我还在文档下得到了生成模块的奇怪面包屑指示AClass:
有人知道我对 Doxygen 嵌套组系统的理解有什么问题吗?
提前致谢!
我们目前正计划使用注释来创建文档。所以任何人都知道如何实现这一目标。正如我检查过的大部分帖子,Doxygen/headerdoc 不支持 Swift。
我正在使用 Doxygen 来记录一个越来越大的 C++ 项目,我一直想知道如何使 Doxygen 成为该项目的构建要求。换句话说,如果有任何类/方法/等,我希望我的构建过程失败并停止。Doxygen尚未成功记录。我用于make建筑。
例如,我希望它失败(即不构建):
/**
* @bbrief Oops, tag does not exist, warning is issued and hence build fails.
*/
void f()
{
// Do something...
}
/**
* @brief Main function for program X
*
* @return End of execution status.
*
* ...
*
*/
int main()
{
f();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但这要构建:
/**
* @brief Okay, this is fine.
*
*/
void f()
{
// Do something...
}
/** …Run Code Online (Sandbox Code Playgroud) 我更喜欢在我的结构定义中定义某些宏,因此很容易看到给定成员的可能值.例如:
typedef struct foo_t {
uint16_t flags;
#define FOO_FLAG_BELL 0x0001
#define FOO_FLAG_BOOK 0x0002
#define FOO_FLAG_CANDLE 0x0004
#define FOO_FLAG_LANTERN 0x0008
}
Run Code Online (Sandbox Code Playgroud)
Doxygen希望在顶部列出所有其他宏的宏.我已经使用分组标记(//@{和//@})将这些宏组合在一起,并用这个组命名foo_t.flags,但我想找到一种方法来将值与结构更紧密地联系起来.我应该使用\link并\endlink以某种方式链接到该组名称?
我们正在使用Doxygen为跨语言项目生成HTML文档。在某些文档中,我想链接到以Doxygen不支持的语言(实际上是Visual Studio T4模板)编写的文件的源。
目前,我只是在doc注释内写出文件名。
在Doxyfile中包括文件扩展名可以使链接起作用,但是Doxygen完全误解了文件,并链接到了这个被误解的文档,而不是我想要的源文件。
但是,如果我排除文件扩展名,则Doxygen根本不会占用该文件。
是否有任何Doxygen命令直接链接到文件的来源,而不是其文档?
我不太在乎Doxygen是否为此文件生成了错误的文档:只要我可以直接链接到文件的源而不是文档,我就会很高兴。文档本身非常明显是不正确的,以至于不会损害页面的生成并可能被发现。
有任何想法吗?
我有一个ac #project,我需要用doxygen来记录.它收集了visual studio自动生成的评论,///但不幸的是它没有接受正常的//评论.是否有我错过的配置设置?或者这是不可能的?