【发布时间】:2020-02-10 17:39:30
【问题描述】:
我对 doxygen 有疑问。并非我所有的 \todo 都收集在全局待办事项列表中,但其中大部分都收集了。我用一个源文件和头文件以及一个配置文件制作了一个简单的 C 示例,我在其中放置了待办事项,我希望 doxygen 将它们收集到全局待办事项列表中。
我的全局待办事项列表缺少以下代码 sn-p 中显示的待办事项,这意味着我的公共函数体内的待办事项(myFunc 中的 test_todo12)以及 cfg 文件中的待办事项(test_todo16 和 test_todo17) , 两者都实现如下所示。
test.h:
/**
* Definition of test structure.
*/
typedef struct def_struct_
{
int32_t first; /**< First element.*/
int32_t second; /**< Second element. */
int32_t third; /**< third element. */
} def_struct_t;
/**************************************************************************************************/
/**
* \brief My func description.
*
* \param[ in ] test_param Input parameter to myFunc.
*
* \return bool
* \retval false false on non success.
* \retval true true on success.
*
**************************************************************************************************/
bool myFunc( uint32_t test_param );
test.c:
#include <stdint.h>
#include <stdbool.h>
#include "test.h"
#include "test.cfg"
bool myFunc( uint32_t test_param )
{
uint32_t testVar = test_param ;
//! This function does nothing. \todo test_todo12
testVar++;
return true;
}
test.cfg:
/** test cfg
* \todo test_todo16
*/
static def_struct_t test_cfg[2] =
{
.first = 123 //! \todo test_todo17
}
我使用的是 doxygen 1.8.14 版
与默认设置相比,我的 doxygen 配置文件的差异如下(在尝试了很多不同的组合之后):
OPTIMIZE_OUTPUT_FOR_C = YES
TOC_INCLUDE_HEADINGS = 1
TYPEDEF_HIDES_STRUCT = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
INTERNAL_DOCS = YES
HIDE_SCOPE_NAMES = YES
WARN_NO_PARAMDOC = YES
RECURSIVE = YES
EXCLUDE_PATTERNS = */README.md
EXAMPLE_RECURSIVE = YES
SOURCE_BROWSER = YES
GENERATE_TREEVIEW = YES
USE_MATHJAX = YES
GENERATE_LATEX = NO
CLASS_DIAGRAMS = NO
HAVE_DOT = YES
UML_LOOK = YES
DOT_PATH = "C:\Program Files (x86)\Graphviz2.38\lib\release\lib"
DOTFILE_DIRS = "C:\Program Files (x86)\Graphviz2.38\lib\release\lib" \ "C:\Program Files (x86)\Graphviz2.38\bin"
PLANTUML_JAR_PATH = C:\tools\plantUML
and added *.cfg \ to FILE_PATTERNS
链接到完整的可编译代码和 doxygen 配置(显示此问题的最小示例):Link to code
当我导航到公共功能“myFunc”时,我看到了待办事项,它只是在全局待办事项列表中丢失了。
cfg 文件似乎根本不包含在 doxygen 文档中,尽管它包含在 C 文件中,但应该将其视为该文件的一部分?或者是否真的有必要为包含这些 cfg 文件做一些额外/特殊的事情?如果是这样,有人知道我错过了什么吗?
我希望有人能帮我解决我的问题,也许公共函数体中的 todo 甚至是一个错误?
问候 杰斯帕
【问题讨论】:
-
欢迎,将代码放在外部资源中并不好,因为这可能不是持久的,人们不喜欢点击它,所以在问题中包含Minimal, Complete, and Verifiable example。关于 doxygen 的配置文件(你用的是哪个版本?),给出与标准 Doxyfile 的区别(用当前版本的 doxygen,1.8.16,
doxygen -x Doxyfile就可以了)。 -
对于说问题应该关闭的人,因为它是题外话,OP 在使用 doxygen 为文档生成正确结果时遇到问题,我认为这里的问题是可以的。跨度>
-
谢谢阿尔伯特。如果喜欢的话,我会尝试做一个最小的例子。我虽然提出了完整的代码,因为在这种情况下我自己更喜欢这个,因为编译比自己插入要容易得多。
-
对我来说最大的问题是外部链接,完整的代码可能会包含很多不相关的代码/文档。对于调试和讨论,(在我看来)在文档的意义上拥有一个小而完整的例子更容易。
-
外部代码也是一个最小的例子,专门用于显示这个问题,我现在已经包含了内联代码sn-ps :)
标签: c documentation doxygen doxygen-wizard doxygen-addtogroup