我对强氧有问题。并非所有“我的任务”都收集在“全局任务”列表中,而是其中的大部分。我制作了一个简单的C示例,其中有一个源文件和头文件,以及一个配置文件,在这里我将todo放在任何地方,我希望doxygen将它们收集到全局todo列表中。
我的全局todo列表缺少下面代码片段中显示的todo,这意味着我的公共函数体(myFunc中的test_todo12)中的todo,以及cfg文件(test_todo16和test_todo17)中的todo,这两个文件都按如下所示实现。
试验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
}
我使用的是1.8.14版的doxygen
与默认设置相比,我的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”时,我看到了todo,它只是在全局todo列表中丢失了。
cfg文件似乎根本没有包含在doxygen文档中,虽然它包含在C文件中,但是应该将by视为该文件的一部分?或者是否真的需要做一些额外的/特殊的事情来包含这些cfg文件?如果是,有人知道我错过了什么吗?
我希望有人能帮我解决我的问题,也许公共功能体中的todo甚至是一个bug?
当做
杰斯帕
最佳答案
看来这里有很多问题。
doxygen不知道扩展名cfg,仅将其添加到FILE_PATTERNS
是不够的,而且编写扩展名的语言必须让doxygen知道,所以EXTENSION_MAPPING = cfg=C
。test.cfg
中的变量末尾缺少分号(;
)。最后一行应为};
doxygen不认为初始化中的注释记录了某些内容(在当前版本1.8.16中也不考虑这个问题)。问题是它属于哪里,因为\todo
很明显它可以登录到ToDo页面,但它是否也应该登录到变量本身?其他注释(初始化现在是变量)如何。另外,在使用STRIP_CODE_COMMENTS=NO
时,注释也不会显示在初始化中。
关于c - Doxygen不会在全局待办事项列表中收集所有\todo,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58370973/