我对 doxygen 有疑问。并非我所有的 \todo 都收集在全局待办事项列表中,但其中大部分都收集了。我用一个源文件和头文件以及一个配置文件制作了一个简单的 C 示例,我在其中放置了待办事项,我希望 doxygen 将它们收集到全局待办事项列表中。
我的全局待办事项列表缺少以下代码片段中显示的待办事项,这意味着我的公共函数体内的待办事项(myFunc 中的 test_todo12)以及 cfg 文件中的待办事项(test_todo16 和 test_todo17),两者都按所示实现以下。
测试.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 );
测试.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;
}
测试.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 配置(显示此问题的最小示例):链接到代码
当我导航到公共功能“myFunc”时,我看到了待办事项,它只是在全局待办事项列表中丢失了。
cfg 文件似乎根本不包含在 doxygen 文档中,尽管它包含在 C 文件中,但应该将其视为该文件的一部分?或者是否真的有必要为包含这些 cfg 文件做一些额外/特殊的事情?如果是这样,有人知道我错过了什么吗?
我希望有人能帮我解决我的问题,也许公共函数体中的 todo 甚至是一个错误?
问候杰斯珀